作業ログ(2010/09/24分)
自宅で作業
- twitter, cakephp
- cakephpのoauth component( http://code.42dh.com/oauth/ )を使って、タイムラインを10件取得のようなコードを書いてみました.ほとんどサンプル通りです.
<?php // oauth componentをincludeする App::import('Vendor', 'oauth', array('file' => 'OAuth' . DS . 'oauth_consumer.php')); class MainController extends AppController { var $name = 'Main'; var $uses = null; var $helpers = array('Form'); function index() {} public function twitter() { $consumer = $this->createConsumer(); $requestToken = $consumer->getRequestToken('http://twitter.com/oauth/request_token', 'oauth認証後に戻ってくるcallbackurlを書く'); $this->Session->write('twitter_request_token', $requestToken); $this->redirect('http://twitter.com/oauth/authorize?oauth_token=' . $requestToken->key); } public function twitter_callback() { $requestToken = $this->Session->read('twitter_request_token'); $consumer = $this->createConsumer(); $accessToken = $consumer->getAccessToken('http://twitter.com/oauth/access_token', $requestToken); $myposts = $consumer->get($accessToken->key, $accessToken->secret, 'http://api.twitter.com/1/statuses/user_timeline.json', array('count' => 10)); // 出力確認用 foreach( json_decode($myposts) as $post ) { echo $post->text . '<br />'; echo strftime('%Y/%m/%d %H:%M:%S', strtotime( (string)$post->created_at )) . '<br />'; } } Private function createConsumer() { return new OAuth_Consumer('Consumer key', 'Consumer secret'); } }