完成イメージ
Twitterへの投稿を
$this->Twitter->tweet(“つぶやくぞ”);
という具合に実行できるようにする。
準備
Basic認証での投稿はできなくなるらしいので、OAuth認証によるツイートが出来るようにする。
すでにOAuth認証による投稿ができるクラスとComponentを作っている人がいるので、それを利用する。
参考にしたサイトではClassを使っていたので、ここではComponentを使ってみる。
また、ここで作成するものは、ACCESS TOKENを直接WEBページから取得するので、個人的な利用の場合のみ使用可能 。
OAuthConsumerComponetをダウンロード
http://code.42dh.com/oauth/
参考にしたサイト: http://www.zontheworld.com/blog/archives/119
概要
Twitterのアカウントから必要な情報を取得する。
DLしたOAuthConsumerComponentの設定。
TwitterComponentの作成。
ツイート!
Twitterの設定
アプリの登録
ツイッターにログインし
http://twitter.com/apps
にアクセス。参考サイトと同様にして、アプリの登録を済ませる。
必要情報の取得 (TOKEN)
Consumer Key & Consumer Secret
登録したアプリケーションの詳細から取得。
Access Token & Access Token Secret
http://dev.twitter.com/apps/ にアクセス。
登録したアプリの詳細をみる。
My Access Tokenをクリック。
CakePHP の処理
OAuthConsumerComponentの設定
DLしたものを展開して、
controllers/componetsを自分のcontrollers/componetsに配置。
vendors/OAuthを app/vendorsに配置。
// 取得したToken等をapp/config/bootstrap.phpに追記
define('TWITTER_CONSUMER_KEY', '**************');
define('TWITTER_CONSUMER_SECRET', '**************');
define('TWITTER_ACCESS_TOKEN', '**************');
define('TWITTER_ACCESS_TOKEN_SECRET', '**************');
// app/controllers/components/oauth_consumers/twitter_consumer.php
class TwitterConsumer extends AbstractConsumer {
public function __construct() {
parent::__construct(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
}
}
TwitterComponentの作成
// app/components/twitter.php
<?php
class TwitterComponent extends Object {
// Oauth認証を使うためのコンポーネント
public $components = array('OauthConsumer');
/**
* ツイートする
* @param string $tweet ツイートする内容
* @return
*/
function tweet($tweet){
$tw = $this->OauthConsumer->post(
'Twitter',
TWITTER_ACCESS_TOKEN,
TWITTER_ACCESS_TOKEN_SECRET,
'http://twitter.com/statuses/update.json',
array('status' => $tweet)
);
return $tw;
}
}
?>
TwitterComponentの使い方
class HogeController extends AppController{
public $name = 'Hoge';
public $components = array('Twitter');
function example(){
$message = "hogedehogesuru";
$this->Twitter->tweet($message);
}
}
Amazon.co.jp ウィジェット