Twitterログイン認証機能を実装したアプリにおいて、2013/04/04頃からエラーが出る事がある様です。
原因と解決方法は以下から。
Twitterログイン認証機能でエラーが出る原因
Twitterの旧APIは2013/05/07に正式終了するとの事ですが、その前に仕様が一部変更になった様です。
上記の記事によると、AccessTokenを取得する際に今までオプション扱いだった引数『oauth_verifier』が必須扱いになった様です。
確かにアクセストークンの内容を確認してみると
【Required oauth_verifier parameter not provided /oauth/access_token】
というエラーが確認できました。
ライブラリなどを用いていないのであれば
$accessToken = $connection->getAccessToken($_GET['oauth_verifier']);
を追記する事で対応可能の様です。
『tmhOAuth』を用いている場合の対処方法
TwitterAPIへのアクセス代行担うライブラリ『tmhOAuth』を用いている場合、上記とは記述方法が異なる為、対応方法も異なります。
まず、以下の様な記述部分を探します。
$twitter->request("POST", $twitter->url("oauth/access_token", ""));
上記コードを見やすい様に整形します。
$twitter->request(
"POST",
$twitter->url("oauth/access_token", "")
);
3行目の末尾に『,』を追記し、その下に『oauth_verifier』の値を指定します。
$twitter->request(
"POST",
$twitter->url("oauth/access_token", ""),
array(
'oauth_verifier' => $_REQUEST['oauth_verifier']
)
);
これでTwitterログイン認証機能が正常に稼働する様になります。
![[Twitter] 『tmhOAuth』でAPI認証できない時の対処法](http://blog.diginnovation.com/wp-content/uploads/2013/04/twitter_tmhoauth_api.jpg)


コメント