表題にはcakephpって書いてるけど普通にPHPで使う方法も同じってことで。
Twitter API 1.1 からOAuthでの使用が必須になったのでまずはOAuthに必要な情報をTwitterにもらいに行く。
Twitter開発者向けページにログインしてアプリを作成した後
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にゴリゴリ書くのは良くないけどひとまず動作確認)
[cc lang=’php’ ]
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);
}
}
[/cc]
こんな感じでSDKのおかげで簡単に取得完了。
本来ならこの手の処理はModelかComponentに書いて処理するのがよろしいかと。
今回やりたかったのは検索結果をDBに入れて後から呼び出しだったので動作確認として Controller に書いただけってことで。
|