Twitterアプリまで作る気はありませんが、仕組みが分からないと気持ちの悪いたちなので、ちょっとだけいじってみることにしました。
現時点でBASIC認証もあれなので、oAuth認証で書くことにしました。
oAuth認証で書くためにはTwitterでアプリケーションを作る必要がありますが、ここでは割愛します。
詳細はこちらhttps://dev.twitter.com/
oAuth認証からTwitterへのリクエスト、レスポンスの制御は、ネットで多く見かける oauthtwitter.phpではなくcodebird.php を使用します。
今回使用したライブラリはこちら→https://github.com/mynetx/codebird-php
使い方としては、
require_once('codebird.php'); Codebird::setConsumerKey('カスタマーID', 'カスタマーシークレット'); $cb = Codebird::getInstance();
トークンとシークレットトークンを先に取得してある場合は
$cb->setToken('トークン', 'シークレットトークン');
このようにセットしてしまいます。
ユーザーホームタイムラインを取得するには下のように。
$reply = (array) $cb->statuses_homeTimeline(); print_r($reply);
パラメーターは配列で指定できますので、たとえば最新10件を取得する場合はこのように記述します。
$reply = (array) $cb->statuses_homeTimeline(array('count'=>'10')); print_r($reply);
TwitterAPIパラメータは、以下のように記述するようです。
例: statuses/update → Codebird::statuses_update()
アンダーバーが入るパラメータはアンダーバーの次にくる文字が大文字になるようです。
例: statuses/home_timeline → Codebird::statuses_homeTimeline()
APIを制御するメソッド(で正しいのか?)
- Timelines
- GET statuses/user_timeline → Codebird::statues_homeTimeline()
- Lists
- GET lists/list → Codebird::lists_list()
- GET lists/statuses → Codebird::lists_statuses()
// パラメーターを配列に格納して渡すときの例 require_once('codebird.php'); Codebird::setConsumerKey('CUSTOMERID','CUSTOMERSECRET'); $cb->setToken('USERTOKEN','USERTOKENSECRET'); $cb = Codebird::getInstance(); $reply = (array)$cb->lists_statses( array( 'slug'=>'LISTNAME', 'owner_screen_name'=>'SCREENNAME' )); // ソース例: slugにはリスト名をowner_screen_nameは自分のユーザーネームを指定 print_r($reply);
- Help
- GET application/rate_limit_status → Codebird::application_rateLimitStatus() その他細かいパラメーターは公式参照。 https://dev.twitter.com/docs/api/1.1
- 投稿タグ
- codebird.php, PHP, Twitter
ついでにJavaScriptでjQueryコールバックを使用する時の例
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $.getJSON('http://localhost/twitter.php?callback=?', function (json) { console.log(json); // この行はデバッグ時に使用 $("#output").append("<dl>"); // ここで処理する $("#output").append("</dl>"); }); </script> </head> <body> <div id="output"></div> </body> </html>
最近のコメント