cakephp 2.2.2 でTwitter検索API 1.1を使う

Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0

表題にはcakephpって書いてるけど普通にPHPで使う方法も同じってことで。

Twitter API 1.1 からOAuthでの使用が必須になったのでまずはOAuthに必要な情報をTwitterにもらいに行く。

https://dev.twitter.com/

Twitter開発者向けページにログインしてアプリを作成した後

https://dev.twitter.com/apps

Consumer key

Consumer secret

Access token

Access token secret

これらの文字列を取得しとく。

 

次はOAuthのSDKを用意。

https://dev.twitter.com/docs/twitter-libraries#php

Twitter開発者向けページで公式に紹介されてる TmhOAuth を使うことに。

太字で紹介されてるぐらいなのでオススメなんかなと。

https://github.com/themattharris/tmhOAuth

ここからダウンロードする。

 

んで解凍したら不要ファイルを削除。

.gitmodules

composer.json

LICENSE

README.md

このへんのファイルはSDKとして使うだけなら不要なのでさくっと削除。

んで中身を Vendor/tmhOAuth を作って配置。

 

とりあえず使ってみようってことでControllerにゴリゴリ書く。

(Controllerにゴリゴリ書くのは良くないけどひとまず動作確認)

App::uses('AppController', 'Controller');

// Twitter SDK https://github.com/themattharris/tmhOAuth
App::import('Vendor', 'tmhOAuth', array ('file' => 'tmhOAuth'.DS.'tmhOAuth.php'));

class FooController extends AppController {

/**
 * Controller name
 *
 * @var string
 */

    public $name = 'Foo';

/**
 * Twitter OAuth Configure
 *
 * @var array
 * @access private
 */
// ここにアプリページで取得した設定を入れる
    private $__oauthConcigure = array (
        'consumer_key'    => '********************',
        'consumer_secret' => '********************',
        'user_token'      => '********************',
        'user_secret'     => '********************',
    );


/**
 * Twitter API Ver
 *
 * @var array
 * @access private
 */

    private $__twitterApiVsersion = 1.1;


/**
 * Before Filter
 *
 * @var array
 */

    public function beforeFilter() {
        // Twitter OAuth Object
        $this->tmhOAuth = new tmhOAuth($this->__oauthConcigure);
    }


/**
 * Index
 *
 * @return void
 */

    public function index() {
        $this->autoRender = FALSE;

        // 検索API
        $code = $this->tmhOAuth->request(
            'GET',
            $this->tmhOAuth->url($this->__twitterApiVsersion. '/search/tweets'),
            array ('q' => 'ここに検索したい文字列を入れる')
        );

        // レスポンス取得
        $result = json_decode ($this->tmhOAuth->response['response'], TRUE);
        var_dump($result);
    }
}

こんな感じでSDKのおかげで簡単に取得完了。

 

本来ならこの手の処理はModelかComponentに書いて処理するのがよろしいかと。

今回やりたかったのは検索結果をDBに入れて後から呼び出しだったので動作確認として Controller に書いただけってことで。

 

カフス Twitter ツイッター ! カフスボタン カフリンクス 【レビューを書いて 送料無料 】 IT インターネット 関連 ビジネス スーツ ギフト プレゼント メンズアクセサリー として! 人気 激安 【smtb-TD】 【楽ギフ_包装】

Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0

あわせて読みたい

Fatal error: Uncaught Exception: 12: REST API is deprecated for versions v2.1 and higher (12) thrown in /var/www/junkpot.net/tech/html/wp-content/plugins/seo-facebook-comments/facebook/base_facebook.php on line 1273