PEAR::HTTP_OAuthでxAuthする
「TwitterでxAuthを使う試み」http://written.4403.biz/archives/2010/03/twitter-xauth.html で紹介されているコード、PEARのバージョンが古かったので自分で書いた。
Installed packages, channel pear.php.net: ========================================= HTTP_OAuth 0.2.3 alpha HTTP_Request 1.4.4 stable HTTP_Request2 2.0.0RC1 beta PEAR 1.9.4 stable Services_Twitter 0.6.3 beta
Services_Twitterはもちろんだけど、OAuthも頻繁にアップデートされるので注意が必要。
以下、いちおう動くコード。
require_once("HTTP/OAuth.php"); require_once("HTTP/OAuth/Consumer.php"); $parameters = array( 'x_auth_mode' => 'client_auth', 'x_auth_username' = $screen_name, 'x_auth_password' => $password, ); $xAuthAccessTokenUrl = 'https://api.twitter.com/oauth/access_token'; try { $oauth = new HTTP_OAuth_Consumer($ini["consumer_key"], $ini["consumer_secret"]); // ssl 証明書チェックをパスするための処理 $request = new HTTP_Request2(); $request->setConfig('ssl_verify_peer', false); $consumerRequest = new HTTP_OAuth_Consumer_Request; $consumerRequest->accept($request); $oauth->accept($consumerRequest); $oauth->sendRequest("https://api.twitter.com/oauth/access_token", $parameters, "POST"); $response = $oauth->getLastResponse(); } catch (Exception $e) { var_dump($e); print_r($e); die(); }
phpでxAuthなんてマズ使わないけど、それだけになかなか資料がないので書いてみたメモ。