ただいまバックグラウンドにて画像を加工中です。

cakephp2.xabraham/twitteroauth0.6.4でtwitterapiを使う

2016年5月10日更新 view: 16 view
http://cakephp.jp/img/default/cake-logo.png

twitter api を使ってみよう

twitter api はバージョンにより書き方が変わってきてしまう。
そこで今回は最新版に合わせた使い方を紹介しよう。

スポンサードリンク

twitter app の作成

https://apps.twitter.com/
でappを作成します。

ライブラリをダウンロード

https://github.com/abraham/twitteroauth
から手動でダウンロード

設置

twitteroauth-master.zip をダウンロードしたら CakePHP の app/Vendor に展開します。

twitteroauth-master フォルダができると思いますのでこのフォルダ名を twitteroauth に変更。

app/Vendor/twitteroauth フォルダ配下に autoload.php がある構造ですね。

エラーを防ぐ

そのまま利用すると
Problem with the SSL CA cert (path? access rights?)
Error: An Internal Error Has Occurred.
とエラーが出る場合があるので以下を変更

/twitteroauth/src/twitteroauth.php 359行目 true を false に変更

'curl_ssl_verifypeer' => false

DefaultsController.php

'XZctGfA2t8xxxGIu26Dz2ao',はAPIkeyを
'hqrkAbWcwlm6NCGwxxxx5u3d8DeY03FE7IAjnjwXgM'はAPIsecret
をそれぞれ設定して下さい。

<?php

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

//twitter opauth を使う
App::import('Vendor','twitteroauth/autoload');
use Abraham\TwitterOAuth\TwitterOAuth;


class DefaultsController extends AppController {

public $uses = [];


// oauth_tokenを取得
public function getaccesstoken(){

$twitter = new TwitterOAuth(
'XZctGfA2t8xxxGIu26Dz2ao',
'hqrkAbWcwlm6NCGwxxxx5u3d8DeY03FE7IAjnjwXgM'
);

$request_token = $twitter->oauth(
'oauth/request_token',
[
'oauth_callback' => 'http://your.com/defaults/callback/'
]
);

$url = $twitter->url('oauth/authorize', ['oauth_token' => $request_token['oauth_token']]);
$this->redirect($url);

$this->autoRender = false;
$this->autoLayout = false;


}


// 戻り先
// o_auth token が $_GETの値に入る
public function callback()
{

//まずはアクセストークンを取得する
$twitter_gettoken = new TwitterOAuth(
'XZctGfA2t8xxxGIu26Dz2ao',
'hqrkAbWcwlm6NCGwxxxx5u3d8DeY03FE7IAjnjwXgM',
$_GET['oauth_token'],
$_GET['oauth_verifier']
);

$access_token = $twitter_gettoken->oauth("oauth/access_token",["oauth_verifier" => $_GET['oauth_verifier']]);



//取得したアクセストークンを使う
$twitter = new TwitterOAuth(
'XZctGfA2t8xxxGIu26Dz2ao',
'hqrkAbWcwlm6NCGwxxxx5u3d8DeY03FE7IAjnjwXgM',
$access_token['oauth_token'],
$access_token['oauth_token_secret']
);


//自分のタイムラインを取得
$time_line = $twitter->get('statuses/home_timeline', ['count' => 10]);

pr($time_line);
exit;

$this->autoRender = false;
}


}

これでアナタのタイムラインの10件が取得されるはず。
お疲れ様ですた!

スポンサードリンク

関連記事

関連カテゴリ