■consumer_key、consumer_secretを取得
これは、twitterのアプリを登録してkeyをもらう感じ。
・Twitter / アプリケーション
にアクセスして、アプリケーションを登録。
登録すると、登録したアプリ用の「consumer_key」と「consumer_secret」が表示されるのでそれをメモっておく。
■auth_token、token_secretを取得
上のアプリを使うアカウントのkeyを取得する感じ。
2010-01-24 - hirokan55の日記のサイトを参考に、
Downloads for abraham's twitteroauth - GitHubからabraham-twitteroauth-XXXXX.zipを落としてきて、
どこか自分のサーバにファイル群を置き、
config.phpのCONSUMER_KEY、CONSUMER_SECRETを上のアプリのkeyに、OAUTH_CALLBACKをおいたcallback.phpのURLとして修正する。
そのあと、index.phpにアクセスし、twitter側に認可を求めて、OAuth tokenとOAuth token secretを発行してもらう。
で、表示されたOAuth tokenとOAuth token secretをメモっておく。
ここまでで、consumer_key、consumer_secret、auth_token、token_secretの4つがわかったので、あとはこれを使って投稿するだけ。
投稿のやり方はたくさんあるけど、今回はpearのservices_twitterとHTTP_OAuthを使った。
まずインストール
■services_twitterを入れる
$ sudo pear install --force services_twitter ..... Starting to download Net_URL2-0.3.1.tgz (8,488 bytes) ...done: 8,488 bytes install ok: channel://pear.php.net/Net_URL2-0.3.1 install ok: channel://pear.php.net/HTTP_Request2-0.5.2 install ok: channel://pear.php.net/Services_Twitter-0.6.2
■HTTP_OAuthを入れる(stableがないので今回は0.1.18のバージョン指定で入れる)
$ sudo pear install HTTP_OAuth-0.1.18 ..... downloading HTTP_OAuth-0.1.18.tgz ... Starting to download HTTP_OAuth-0.1.18.tgz (51,237 bytes) .............done: 51,237 bytes install ok: channel://pear.php.net/HTTP_OAuth-0.1.18
■サンプルコード
require_once 'Services/Twitter.php'; require_once 'HTTP/OAuth/Consumer.php'; try { $twitter = new Services_Twitter(); $oauth = new HTTP_OAuth_Consumer( 'メモったconsumer_key', 'メモったconsumer_secret', 'メモったauth_token', 'メモったtoken_secret' ); $twitter->setOAuth($oauth); $msg = $twitter->statuses->update("OAuth経由でTwitterに投稿するよ。"); } catch (Services_Twitter_Exception $e) { echo $e->getMessage(); }
参考
- 2010-01-24 - hirokan55の日記
- PHPでTwitter APIのOAuthを使う方法 - memo.xight.org