複数アカウントのツイートを表示させてTwitterのタイムラインっぽい画面をつくる。ユーザー定義関数(function)の活用について

Twitter_logo_blue

#グラドル自画撮り部の部室さんのホーム画面を見ていると、複数アカウントのツイートが表示されています。

一般ユーザーとしては、いろいろな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]

tw_function

APIを呼び出したときのブラウザ上の表示画面を見ると、3つのアカウントが同時に取得できていることが分かります。

〔参考サイト〕

Twitter_logo_blue

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次