twitterにブログ更新したとき連動してoauthでつぶやくようにしました。
以前に、「twitterにブログ更新したとき連動してつぶやくようにしました。」でブログの更新情報をtwitterに流すようにしてました。
これはbasic認証を使ってtwitter APIを利用してました。
basic認証というのはtwitterで使っている自分のIDとパスワードを使用するもので、自分だけで使う分にはまあいいかなとはおもってました。
一応前から気にはなっていたoauth認証を使ってのAPI利用に切り替えてみようと思って作業してみました。一応、覚書程度に書いておこうと思います。
まず、Twitterにアプリケーション登録をします。
Twitterに自分のアカウントでログインしてTwitterのOAuth申請のサイトから、自分のアプリケーション名やサイトのアドレスを登録します。
登録する内容で気になったのが「Application Type」と「Callback URL」です。初めて使う場合は「Application Type」をBrowserにして「Callback URL」をAPIから受け取った情報を出力するようにしました。oauth認証でtwitter apiを使用するとき必要になる情報が[Consumer key][Consumer secret][Access TokenAccess][Token Secret]です。
[Consumer key][Consumer secret]はアプリケーション登録すると表示され、[Access TokenAccess][Token Secret]はアプリケーションを使用する許可を求めたユーザーの特有の情報になります。twitterのアカウントの情報とは異なり、使用するアプリケーションに対してのみ許可を許すための情報です。この4つの値が一致して初めてtwitter APIの使用が許可になります。
また、このブログでAPIを使うのは私一人なので、一度APIの使用許可をした後はAPI使用の許可を求める人はいませんので、「Application Type」をclientに変更します。
内容が前後しているけど、まあいいか。
次にoauthで認証するためにTwitter API Wiki / OAuth Examplesにあるabraham's twitteroauth at master - GitHubのphpで書かれたスクリプトを使わせていただきます。
サンプルのスクリプトもありますけど、「OAuth.php」と「twitteroauth.php」を使います。
次に、oauthでtwitterにアクセスするためのスクリプトを用意します。
こちらは PHPでOAuthを使ったサンプルコード | きらら2号のスクリプトを使わせていただきます。
まず、はじめにTwitter認証ページへ移動するためのページを用意して、そのページからTwitter認証ページを呼び出し、twitterのアプリケーション許可のページに移動します。ゆーざーが 許可をするとアプリケーションの設定のCallback URLに移動します。このときに[Access TokenAccess][Token Secret]の情報を取り出す。(あくまで自分だけが使うのを前提にしての作業なので・・・)
APIの情報を取り出せたら、今後使わないためoauthでtwitterにアクセスするためのスクリプトはサーバーから削除する。
あとはPHP+OAuthでTwitter - SDN Projectを参考にPHP+OAuthでTwitterにPOSTします。
まあ、できるだけシンプルにはじめてすることはしたほうがいいと思うので、とりあえずこんな感じで作業してみました。この前と一緒で、これから実際のテスト・・・はたしてどうなるやら・・・
うまくtwitterに投稿できたようです。
投稿した後で気がつくことが多いけど、長い文書を書くといろいろ抜けがでてきてますいな。
いくつか作業中に戸惑った点があります。
twitteroauth.phpの中の
/**
* Set API URLS
*/
function accessTokenURL() { return 'http://twitter.com/oauth/access_token'; }
function authenticateURL() { return 'http://twitter.com/oauth/authenticate'; }
function authorizeURL() { return 'http://twitter.com/oauth/authorize'; }
function requestTokenURL() { return 'http://twitter.com/oauth/request_token'; }
はアプリケーションの登録のときの表示されるURLと同じか確認する。
PHP+OAuthでTwitterにPOSTするときに
$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",array("status"=>"Test OAuth update."),"POST");
↓
$req = $to->OAuthRequest("http://twitter.com/statuses/update.xml","POST",array("status"=>"Test OAuth update."));
twitteroauth.phpのバージョンが変更になってパラメータの順番が入れ替わったようですね。また、URLも変わったみたいですね。
の2点でつまずきました。
- Category:Nucleus CMS
- Tag:Twitter / Nucleus / oauth





