1. TOPTOP
  2. Webサービス
  3. Twitter

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

|

Twitter_logo_blue

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

一般ユーザーとしては、いろいろなTwitterユーザーをフォローし、自分のタイムライン上で複数のアカウントのツイートを表示させることは簡単です。

PHPでユーザー定義関数の活用

ではTwitterAPIの場合、どうすればよいでしょうか?実はこれも簡単です。PHPでユーザー定義関数を作れば良いだけのことです。

GET statuses/user_timelineでは、引数としてひとつのscreen_nameで、ひとつのアカウントのツイートしか取れませんが、この動作を複数回まとめて行えるようにします。

ユーザー定義関数とは

「functionとは」と言うと大上段に構えてしまうかもしれませんが、ドットインストールの例文(新しいタブで開く)を見れば分かりやすいでしょう。

<?php
 
function sayHi($name) {
    echo "hi! $name";
}
 
sayHi("Bob");
sayHi("Tom");

あとは、PHPのドキュメンテーション(新しいタブで開く)を読んでみるのも良いかもしれません。

ユーザータイムラインのユーザー定義関数

Tiwtterのユーザータイムラインを関数化するときも、基本と全く同じ考え方をします。ざっくりと言えば、こんな感じになります。

<?php
 
function userTimeline($screenname) {
    TwitterOAuthでツイートの呼び出し
}
 
userTimeline("hoge");
userTimeline("fuga");

ポイントは、関数の引数としてスクリーンネームを用いることです。

userTimeline関数を使う

それではごく簡単な例文を書いてみましょう。

これら3つのアカウントについて、1件ずつツイートを取得してみましょう。

<?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");
?>

tw_function

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

〔参考サイト〕