アプリケーション登録

Twitter API を利用するにはアプリケーションの登録が必要です。
やり方は下記ページを参考に登録してください。

PHPでOAuth認証して自分のつぶやきを表示する [Twitter API 1.1 対応版]

認証ライブラリのダウンロード

認証にはライブラリを使用すると簡単ですので下記URLからダウンロードしましょう。

abraham/twitteroauth

使用するのは「twitteroauth」フォルダの「OAuth.php」「twitteroauth.php」ですので、フォルダごと自分のプロジェクトフォルダにコピーしておきます。

自分のツイート(タイムライン)を表示する

自分のツイートの取得は先ほど紹介したました過去記事そのままですね。

php
<?php
require_once("twitteroauth/twitteroauth.php");
$consumerKey = 'xxxxxxxxxxxxxxxxxxx';
$consumerSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$accessTokenSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET',array('count'=>'10'));
$tweets = json_decode($req);
if (isset($tweets) && empty($tweets->errors)) {
echo '';
foreach ($tweets as $val) {
echo '' . date('Y-m-d H:i:s', strtotime($val->created_at)) . '';
echo '' . $val->text . '';
}
echo '';
} else {
echo 'つぶやきはありません。';
}
?>
1行目
require_once でダウンロードしたライブラリを読み込みます。
3-6行目
アプリケーション登録で取得してキーをそれぞれ入力します。
9行目
Twitter API 1.1 を使用して自分のタイムラインを10件取得という条件でリクエストしています。
10-20行目
取得したツイートの表示部分です。var_dump($tweets) などで確認して好きなように表示してください。

指定ユーザーのツイート(タイムライン)を表示する

今度はユーザーを指定します。
$req を下記に置き換えます。

php
$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET',
array(
'count'=>'10',
'screen_name' => 'ユーザー名'
));

「ユーザー名」は取得したいユーザーに置き換えてください。

指定したリストのツイートを表示

作成したリストのツイートを取得してみます。
リストはたとえば社員のツイートだけを表示したいといったときに使えますね。

php
$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/lists/statuses.json','GET',
array(
'count' => '10',
'owner_screen_name' => 'ユーザー名',
'slug' => 'リスト名',
));

「ユーザー名」「リスト名」はそれぞれ取得したいリストに置き換えてください。

リストに登録しているユーザーの取得

ツイートじゃなくてユーザー情報を取得したい場合。

php
$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/lists/members.json','GET',
array(
'owner_screen_name' => 'ユーザー名',
'slug' => 'リスト名',
));

指定したハッシュタグで検索する

イベントサイトなどでは指定したハッシュタグのツイートを表示したいときがありますね。
例として「#wordpress」の「日本語」のツイートを取得してみます。
若干構造が変わるので、表示部分も書いておきます。

$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/search/tweets.json','GET',
array(
'lang' => 'ja',
'q' => '%23wordpress'
));
$tweets = json_decode($req);
if (isset($tweets) && empty($tweets->errors)) {
$tweets = $tweets->statuses;
echo '<dl>';
foreach ($tweets as $val) {
echo '<dt>' .
date('Y-m-d H:i:s', strtotime($val->created_at)) .
' [' . $val->user->name . ']' .
'</dt>';
echo '<dd>' . $val->text . '</dt>';
}
echo '</dl>';
} else {
echo 'つぶやきはありません。';
}

さらにユーザーで絞り込む

さらにユーザーも指定したいときは「+from:」でユーザー名を指定します。

$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/search/tweets.json','GET',
array(
'lang' => 'ja',
'q' => '%23wordpress+from:username'
));

他にもいろいろと検索できますので公式ドキュメントなど参考にしてくさい。

REST API v1.1 Resources