前回に引き続き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の画面です↓

名称未設定-1

 

 

なんか「Sign in with Twitter」という項目が「No」とかなってますね・・・

 

・・・これじゃね?とか思いながらSettingsタブの「Allow this application to be used to Sign in with Twitter」に

チェックを入れて「Yes」に変更してみたところ・・・ちゃんと自動で飛ぶようになってくれました。

 

これさ、デフォルトで「No」になってるんですよ。ひどくない?

こんな情報どこにも書いてなかったし!(ちゃんと探せば多分ある)

もう少し私の勘が鈍かったら、あと2~3日は悩めますよこれ(勘でコーディング発言)

 

ちょっと調べたところ、どうやらセキュリティの関係で

最近追加された項目らしいです・・・

少し古い情報になると対応していないのも仕方ないですよね・・・

 

引き続きがんばります。