ホーム > ブログ > タグ : Twitter

CakePHPでTwitterのOAuth認証を利用するライブラリが公開されています。

http://code.42dh.com/oauth/

上記サイトからコンポーネントファイルをダンロードして、
vendorsディレクトリ下に配置します。

以下、OAuth認証後につぶやきを投稿するサンプルコードです。
(コードは上記サイトのExampleより引用しています。)

app/controllers/example_controller.php

App::import('Vendor', 'oauth', array('file' => 'OAuth'.DS.'oauth_consumer.php'));

class ExampleController extends AppController {
    public $uses = array();
    
    public function twitter() {
        $consumer = $this->createConsumer();
	$requestToken = $consumer->getRequestToken('http://twitter.com/oauth/request_token', 'http://test.localhost/example/twitter_callback');
        $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);
		  
	$consumer->post($accessToken->key, $accessToken->secret, 'http://twitter.com/statuses/update.json', array('status' => 'hello world!'));
    }
	
    private function createConsumer() {
        return new OAuth_Consumer('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET');
    }
}

ライブラリの作者様に感謝します。

TwitterのOAuth認証を利用するには、
Twitterへのアプリケーション登録が必要になります。

登録はこちらから行えます。
http://twitter.com/oauth_clients

1.「Register a new application」を選択


2.アプリケーションに関する情報を入力
内容はあとから自由に変更できます。


Application Icon
アプリケーションのアイコン

Application Name
アプリケーションの名称

Description
アプリケーションの概要

Application Website
アプリケーションのURL
例)http://hogehoge

Organization
アプリケーション作成者の組織

Website
アプリケーション作成者のURL

Application Type
アプリケーションの種類

Callback URL
認証後に表示するURL
例)http://hogehoge/callback

Default Access type
アクセスの種類

Use Twitter for login
ログインに使用するかどうか

「保存する」ボタンをクリックすると登録が完了します。

完了後の画面にOAuthに必要な「Consumer key」「Consumer secret」「Request token URL」「Authorize URL」が表示されます。