2009年11月23日
■[CakePHP][twitter]CakePHPでTwitterマッシュアップを作る#4
目標
すべてのページに「twitterでログイン」を用意してOAuthにより認証できるようにする
使ったもの
からOAuth consumer componentをダウンロード
解凍すると
- controllers
- vendors
が入っています。
app/vendorsに
OAuthフォルダを入れる
app/controllers/conponentsに
oauth_consumersフォルダ、oauth_consumer.phpを入れて準備完了
Twitterのキー
第2回で作成した
- コンシューマキー
- シークレットキー
を、app/controllers/components/oauth_consumers/twitter_consumer.phpを作成し
class TwitterConsumer extends AbstractConsumer {
public function __construct() {
parent::__construct('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET');
}
}
と、記述
twitter連携用コントローラの作成
twitter_controller.phpをapp/controllers下に作成し
class TwitterController extends AppController {
public $uses = array('User');
public $components = array('OauthConsumer'); <--これ重要(oauthコンポーネントの呼び出し)
public function twitter() {
$requestToken = $this->OauthConsumer->getRequestToken('Twitter', 'http://twitter.com/oauth/request_token', 'http://localhost/twitter/twitter_callback'); <--コールバックしてもらうURLを指定、ローカルでもOK。今回はローカルテストのため
$this->Session->write('twitter_request_token', $requestToken);
$this->redirect('http://twitter.com/oauth/authorize?oauth_token=' . $requestToken->key);
}
public function twitter_callback() {
if (!empty($this->params['url']['denied']))
{
$this->Session->setFlash('拒否されました');
$this->redirect('/');
}
$requestToken = $this->Session->read('twitter_request_token');
$accessToken = $this->OauthConsumer->getAccessToken('Twitter', 'http://twitter.com/oauth/access_token', $requestToken);
if (empty($accessToken)) $this->redirect('/');
$json = $this->OauthConsumer->get('Twitter', $accessToken->key, $accessToken->secret, 'http://twitter.com/account/verify_credentials.json', array()); <--認証ユーザ情報の取得
$this->Session->setFlash('認証OK');
//ユーザ情報を登録
/***** ここで受け取ったjsonの情報をDBに入れるなりごにょごにょ ******/
$this->User->create();
$this->User->save(json_decode($json, true));
/***** ポストするときとかは以下な感じ *****/
$this->OauthConsumer->post('Twitter', $accessToken->key, $accessToken->secret, 'http://twitter.com/statuses/update.json', array('status' => '私がムスカ大佐だ。'));
$this->redirect('/');
}
}
とりあえずTwitterOAuthの準備は整った。
後はビュー
app/views/layouts/default.ctpに
<?php echo $html->link("ついったログイン", "/twitter/twitter"); ?>
とか書いておけばOK
twitterコントローラでユーザ情報をセッション/DBに入れるなり、アクセストークンをセッション/DBに入れるなりはご自由に
■[日記]白菜のミルク煮
今回は旬の激安白菜を使って、僕の冬の定番料理「白菜のミルク煮」を
材料
白菜4分の1
ベーコン3枚
にんにく1かけ
塩・コショウ
牛乳3カップくらい
固形コンソメ1個〜1.5個
片栗粉
まずは
白菜を適当に切ります
こんな感じ
次はベーコン・にんにくをみじん切りに
かなり大きめの中華なべにオリーブオイルとみじん切りしたにんにくをいれ炒めます
にんにくのいい香りがしてきたらベーコン投入し、少し火を通したら白菜の芯の部分からドサっと入れます。
最初はかなり量が多いですが、だんだんしなっとなってきて水気が出てくるのでさらに塩・コショウを入れます。
味付けは後はコンソメ任せなので塩・コショウは少し大目でも大丈夫です。
白菜を全部入れてから、全体的にしなっとなってきたらコンソメの素を白菜の水気の中に投入
牛乳を全部いれ、かき混ぜてから弱火でふたをしてしばらく煮込み、沸騰するまで待ちます。
沸騰してちょっと煮込んだら、後は味見をして味を調えます。
最後に水溶き片栗粉をちょっとづつかき混ぜながらまわし入れてすこーしとろみが付いたら完成です!
(゚д゚)ウ-(゚Д゚)マー(゚A゚)イ-…ヽ(゚∀゚)ノ…ゾォォォォォ!!!!









