2011年03月16日

Twitter api で ログイン状態継続 cakephp ver

お願いします♪いいねとかつぶやいたりして下さい
 
twitterのapiは一度ログインしてもその場から離れるとすぐにまた
ログインしろよと画面を表示してくる。

あれ、うっとうしい。

で、そのログイン情報を持ったまま、強いて言うならクッキーに登録したままページ遷移したい。
これはそのうちプラグイン化しようと思う。
とりあえず、流れだけ。

使用するプラグイン
http://code.42dh.com/oauth/

で、適当なコントローラーに
public function twitter() {
    $consumer = $this->createConsumer();
    $requestToken = $consumer->getRequestToken('https://api.twitter.com/oauth/request_token', 'ログイン後の戻り先絶対URL');
    $this->Session->write('twitter_request_token', $requestToken);
    
    if(!$this->Session->read('Twitter.accessToken.key')){
        $this->redirect('https://api.twitter.com/oauth/authorize?oauth_token=' . $requestToken->key);
    } else {
        //直接書き込み画面へ
        $this->redirect('あなたのURL/twitter_callback/1/');
    }
    $this->autoRender = false;
}


//$mode が 1ならすでにログイン済み
public function twitter_callback($mode = 0) {
    
    $consumer = $this->createConsumer();
    
    //postで書き込む場合
    //$consumer->post($accessToken->key, $accessToken->secret, 'http://api.twitter.com/1/statuses/update.json', array('status' => 'hello world!'));
    
    
        
    if($mode == 0){
        echo '一度ログインモード';
        $requestToken = $this->Session->read('twitter_request_token');
        $accessToken = $consumer->getAccessToken('https://api.twitter.com/oauth/access_token', $requestToken);
        
        $this->Session->write('Twitter.accessToken.key', $accessToken->key);
        $this->Session->write('Twitter.accessToken.secret', $accessToken->secret);
    } else {
        
        echo 'セッション読み込みモード';
        $accessToken->key = $this->Session->read('Twitter.accessToken.key');
        $accessToken->secret = $this->Session->read('Twitter.accessToken.secret');
    }
    
    
    
    
    //ユーザーのタイムラインを取得
    //$res = json_decode($consumer->get($accessToken->key, $accessToken->secret, 'http://api.twitter.com/1/statuses/user_timeline.json', array('count' => '10')));
    
    //ユーザーのプロフィールを取得
    $res = json_decode($consumer->get($accessToken->key, $accessToken->secret, 'http://api.twitter.com/account/verify_credentials.json'));
    
    $this->autoRender = false;
}


こんな感じでセッションに登録したままにできる。

一度ツイッターで認証した auth 情報は そのまま使うことができるので

・セッションがなければツイッターへ飛べ
・セッションがあればそのまま処理を続行せよ



って感じで振り分けると良い。

ちなみにユーザーの写真は
http://eru-net.jp/web/?itemid=363

で取得すると良いかも。
関連するタグ: PHP cakephp
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ