適当給与 |
13 12月 |
前回に引き続きTwitter連携の話。
晴れてTwitterOAuthというライブラリを使えるようになった訳ですが
もちろんこのライブラリにも認証機能があります。
主にこちらのサイトを参考にさせていただきました↓
参考サイト:Twitter OAuth + PHP でログイン処理の実装
ほぼこちらのサイトのソースを流用させていただきながら(汗)
順調に認証できるようになったかと思ったのですが、案の定問題が。
参考サイトにはこう書かれています↓
>>初回は、Twitter認証画面へ飛ばされて、認証済み+2回目以降なら
>>Twitter認証画面から直接Redirectされて callback に指定したURLへ飛ばされるようになります。
つまり、一回認証したアプリはわざわざユーザーが「認証する」のボタンを押さなくても
自動でコールバックURLにリダイレクトしてくれるということ。
ほう。これは便利な機能だな、と思いつつ試してみると・・・飛ばないんですよこれが!(涙)
できれば毎回認証は避けたいのでなんとかしたいです。
getAuthorizeURL()っていう認証ページのURLを生成してくれるメソッド(?)があるのですが
その認証ページが2種類ありまして
https://api.twitter.com/oauth/authorize こちらは毎回認証が必要
https://api.twitter.com/oauth/authenticate こちらは2回目以降を自動省略
ということらしいのです。
getAuthorizeURL()の第一引数に、なんちゃらトークンを渡します(よくわかってない)これはOK。
第二引数を省略する(もしくはTUREを渡す)とauthenticateの方のURLを生成してくれる。とのこと。
うむ。問題無いはず。なんですよ。
生成されたURLを見ても、ちゃんとauthenticateの方になってます。あれ~???
ひととおり悪戦苦闘してみた後、怪しいものを発見しました。
Twitter DevelopersのOAuth settingsの画面です↓
なんか「Sign in with Twitter」という項目が「No」とかなってますね・・・
・・・これじゃね?とか思いながらSettingsタブの「Allow this application to be used to Sign in with Twitter」に
チェックを入れて「Yes」に変更してみたところ・・・ちゃんと自動で飛ぶようになってくれました。
これさ、デフォルトで「No」になってるんですよ。ひどくない?
こんな情報どこにも書いてなかったし!(ちゃんと探せば多分ある)
もう少し私の勘が鈍かったら、あと2~3日は悩めますよこれ(勘でコーディング発言)
ちょっと調べたところ、どうやらセキュリティの関係で
最近追加された項目らしいです・・・
少し古い情報になると対応していないのも仕方ないですよね・・・
引き続きがんばります。
13 12月 |
さて、しょうこりもなくTwitter連携のアプリケーションでも作ろうかなと思いまして。
ギリギリ読めないなんちゃらでTwitter連携の煩雑な部分は勉強したつもりだったのですが
やっぱりいまいちわかってなかったみたいなのでメモ代わりにでも書こうと思います。
前回まではtmhOAuthというライブラリを使っていました。
ざっと調べたところ、TwitterOAuthというライブラリの方が
比較的使い方が簡単で人気がありそうなのですが
なんと、画像の取り扱い(画像投稿やプロフィールイメージ編集など)に対応していないとのこと!
ギリギリなんちゃらはモロに画像投稿のアプリケーションだったもので
仕方なく、なんだかいまいち小難しいtmhOAuthを使っていた訳です(私の技術不足という説も)
ですが!ここにきてTwitterOAuthでも画像が扱えるように改造したヤツがあるという情報を見つけました。
・・・実は結構有名な話なのかもしれません。自分の情報収集力に絶望しました。
参考サイト:【PHP】twitteroauthを使ってプロフィール画像を変更してみる
oAuthRequestImage()の部分が追加されているようなのですが、これを使えば画像が簡単に扱えます。
これで晴れて、一番人気で日本語の情報が豊富な(感じのする)TwitterOAuthを使えるようになった訳です。
我ながら随分と回り道しました(泣)
そして、順調に進むかと思いきや、またも認証部分で苦労することになるのですが
別の話なので次の記事にでも。
3 10月 |
前回の続きの続き
ついさっき気付いたのですが、なにか勘違いしていたようです。
前々回の記事の
>その認証してもらったり?アクセストークン取ってきたりするとき?に
>PHPでは「PEAR」というライブラリを使った方法しか情報が見つからなくて。
という部分。twitter認証にはPEARを使うもんなんだろうと思い込んでいたのですが
その後、色々調べてみると、twitter認証用ライブラリは沢山あるらしい・・・
しかも、その中にはPEARのようにパッケージのインストールなどが必要なく
1つファイルを読み込むだけで使えるようになるものもあるらしい・・・
tmhOAuthとかみてみたけどかなりシンプルに導入出来そう。
お恥ずかしい話ですが認証とAPIの利用って全く別モノだと思い込んでて
ライブラリも別のモノが必要だと思い込んでました。
なんでそういう思考になったんだろうね。不思議だね。
昨日の苦労はなんだったんだよ・・・
半ば無理矢理インストールしたのに・・・
なんで一昨日に見つけきれなかったのかな・・・
PEARを使う日がいつか来ることを願って今日も強く生きたいと思います。
2 10月 |
前回の続き。
観念してPEARをインストールしようじゃないか。
大丈夫。私ならできるさ。
とりあえずはローカル環境に入れてみよう、と思いました。怖いので。
私、XAMPPを使っておりまして、バージョンにもよりますが元々PEARは入っているらしい!(感激)
ただ、実際に使う「パッケージ」というものは随時インストールしなければならず
その作業が色々あるようだ。
んでんで、インストールはコマンドプロンプトからコマンドを送ってやるのが一般的らしい。
XAMPPの場合はフォルダパスに気をつけよう。
「C:\php」 じゃなくて 「C:\xampp\php」 にすればいいのかな。いろんなところを。
私が欲しいパッケージはHTTP_OAuthというもの。
一応、既に入っていないか確認してみたけれど、入っていないようだ。残念。
早速、コマンドプロンプトにて
>pear install HTTP_OAuth
よし!いけ!
(なんか色々エラー的なメッセージ)
install failed
うん。なんかダメっぽいね。アメリカ語苦手なんだよね僕。
色々ググった結果、このパッケージは色々不安定なので最新版を入れろボケ。ってことらしい。
わかりました。
>pear install –alldeps channel://pear.php.net/HTTP_OAuth-0.2.3
これでいいだろ。いけぇ!
(なんか長ったらしいエラーメッセージ)
Possible symlink attack
なんか物騒なエラー出たな。アタックって何だよ。アメリカ語わかんないけど物騒。
再度ググります。理屈はさっぱりわからないが次のコマンドを実行すればいいらしい。
>pear clear-cache
うん。なにも起こらないけど大丈夫なのかな?もう一回行きます。
>pear install –alldeps channel://pear.php.net/HTTP_OAuth-0.2.3(さっきと一緒)
次こそ!
(読む気も起きないアメリカ語)
ERROR: failed to mkdir
はい。人生トゥライ。なんだ?フォルダが作れませんって?作ろうよそこは。
よく見てみたら「C:\php\pear\docs\HTTP_OAuth\examples」という文字が。
そんな場所に何をしようとしてるの?「xampp\php」だよ?は?
くじけずに調べます。
色々と巡っているとそれっぽい情報を発見。
環境変数 PHP_PEAR_SYSCONF_DIR を設定できます。とのこと。
ちょっと違う気もするけど・・・これかなぁ。
>set PHP_PEAR_SYSCONF_DIR=C:\xampp\php
なにが変わっているかよくわかりませんが、とりあえずインストールコマンドを打ってみよう。
いってくれ!貴様の実力を見せてみろ!
(さっきとおんなじ読む気も起きないアメリカ語)
ERROR: failed to mkdir
ぐにゃああああああああああ
もうダメだ。もうダメだろこれ。
うつろな目でグーグル先生の懐を漁り続けます。
・・・
「コマンドプロンプトは管理者権限で起動しましょう」
ん?
「コマンドプロンプト→右クリック→管理者として実行」
もしや・・・
>pear install –alldeps channel://pear.php.net/HTTP_OAuth-0.2.3
install ok :
ああああああああああああこういうことでしたのねえええええええええええええええ
30 9月 |
Twitterと連携した何かを作ろうと考えまして。
つーはんアンテナのBotを作ったことがあったので、同じような感じでイケるっしょ!と
気楽に考えていました。
プログラムをTwitterと連携させるには、なんだか面倒なことがいろいろあるんですが
とりあえず「アクセストークン」なるものを持ってこないといけないらしい。
Botみたいに自分が管理するアカウントで自動ツイートしたりする場合は
簡単に取得できまして、それをプログラム内にコピペしちゃえば済むんですよ。
でも、他人のアカウントで色々やりたい場合、ユーザーさんに認証をしてもらって
初めてアクセストークンが持ってこれるらしいんです。Twitterやってる人なら見たことあるよね?
で、ちょっと込み入った話になってくるんですが
その認証してもらったり?アクセストークン取ってきたりするとき?に
PHPでは「PEAR」というライブラリを使った方法しか情報が見つからなくて。
正直に言いますとPEAR使ったことない。
PEARどころかライブラリなるものの使い方もよくわかってない。
メンドイなぁ。でも他の情報見つかんないし・・・仕方ないか。
で?私、ロリポップサーバーを借りてるんですがPEARさんはどうやって使うのかね?
うっへぇ・・・わかんねぇ・・・わかんねぇし、なんか怖い。
やめよう。よくわからないモノに手を出すのはやめよう。(逃げ腰)
きっとPEARなんて使わなくてもPHPのみで出来るはずだ。探そう。
・・・ここで数時間経過
案の定なんだかよくわかりません。っていうか情報見つかんない。
たまたまオンラインにプログラマをかじってる友人がいたので聞いてみることに。
「よくわかんないけど、今はPHPのみでの認証は聞いたことないなぁ。
っていうか素直にPEAR使った方が楽だと思うよ?そのためにライブラリがあるんだし」
・・・はい。すみませんでした。僕が悪かったです。
プログラマたるもの新たな学習から逃げていては成り立たない。
そういうことですね(涙)っていうかライブラリ使えるくらい最低限ですよね(血涙)
明日、また頑張ります。
(注意)この情報は間違ってるかもしれませんので信用しすぎないようにしてください
追記:やっぱり間違えてました→事実誤認
20 9月 |
高齢というほどではないのですが、これくらいの年から
全く新しいことを勉強するのはとても難しいことだと痛感します。
30歳で自営業の収入が激減するという憂き目にあった私は
ほぼゼロからプログラミングの勉強を始めました。
「こんな年から始めても話にならんだろ」とも思ったけれど
喫茶店で参考書片手に勉強している50代くらいの方を見て
奮い立つという単純ぶり。ぼ・・・ぼくもがんばろう・・・!
3カ月ほど勉強してまずは習作を、と思い通販情報のアンテナサイトを作りました。
PHP・MySQL・JavaScriptあたりを使ったのですが
この程度のサイトでこんなに苦労するのかよっ!と思うくらい苦労しまして
今後が激しく不安ですが、なんとか生きていければいいなと思う。