適当給与 |
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を使えるようになった訳です。
我ながら随分と回り道しました(泣)
そして、順調に進むかと思いきや、またも認証部分で苦労することになるのですが
別の話なので次の記事にでも。