#グラドル自画撮り部の部室さんのホーム画面を見ていると、複数アカウントのツイートが表示されています。
一般ユーザーとしては、いろいろなTwitterユーザーをフォローし、自分のタイムライン上で複数のアカウントのツイートを表示させることは簡単です。
PHPでユーザー定義関数の活用
ではTwitterAPIの場合、どうすればよいでしょうか?実はこれも簡単です。PHPでユーザー定義関数を作れば良いだけのことです。
GET statuses/user_timelineでは、引数としてひとつのscreen_nameで、ひとつのアカウントのツイートしか取れませんが、この動作を複数回まとめて行えるようにします。
ユーザー定義関数とは
「functionとは」と言うと大上段に構えてしまうかもしれませんが、ドットインストールの例文を見れば分かりやすいでしょう。
[php]
<?php
function sayHi($name) {
echo "hi! $name";
}
sayHi("Bob");
sayHi("Tom");
[/php]
あとは、PHPのドキュメンテーションを読んでみるのも良いかもしれません。
ユーザータイムラインのユーザー定義関数
Tiwtterのユーザータイムラインを関数化するときも、基本と全く同じ考え方をします。ざっくりと言えば、こんな感じになります。
[php]
<?php
function userTimeline($screenname) {
TwitterOAuthでツイートの呼び出し
}
userTimeline("hoge");
userTimeline("fuga");
[/php]
ポイントは、関数の引数としてスクリーンネームを用いることです。
userTimeline関数を使う
それではごく簡単な例文を書いてみましょう。
これら3つのアカウントについて、1件ずつツイートを取得してみましょう。
[php]
<?php
function userTimeline($screenname) {
require_once("twitteroauth/twitteroauth.php");
$consumerKey = "MYCONSUMERKEY";
$consumerSecret = "MYCONSUMERSECRET";
$accessToken = "MYACCESSTOKEN";
$accessTokenSecret = "MYACCESSTOKENSECRET";
$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
$request = $twObj->OAuthRequest(‘https://api.twitter.com/1.1/statuses/user_timeline.json’,’GET’,
array(
‘count’=>’1’,
‘screen_name’ => $screenname,
));
$results = json_decode($request);
if(isset($results) && empty($results->errors)){
foreach($results as $tweet){
echo date(‘Y-m-d H:i:s’, strtotime($tweet->created_at));
echo "<br/>";
echo $tweet->user->screen_name;
echo "<br/>";
echo $tweet->text;
echo "<br/>";
}
}
}
userTimeline("retrip_news");
userTimeline("ReutersJpSports");
userTimeline("TimeOutTokyoJP");
?>
[/php]
APIを呼び出したときのブラウザ上の表示画面を見ると、3つのアカウントが同時に取得できていることが分かります。
〔参考サイト〕