1. TOP
  2. Webサービス
  3. Twitter
  4. Twitter REST API1.1のGET statuses/user_timelineで画像の取得にチャレンジ。単数の画像は取れましたが複数画像は取れませんでした…

Twitter REST API1.1のGET statuses/user_timelineで画像の取得にチャレンジ。単数の画像は取れましたが複数画像は取れませんでした…

|

Twitter_logo_blue

2014年の5月ごろから、Twitter REST APIが複数画像の投稿に対応していたらしいので、その取得にチャレンジしてみました。

単数の画像を取得するためのコード

まずは、GET statuses/user_timelineで、次の5つの情報を取得してみます。

  • 日付($tweet->created_at)
  • アイコン画像($tweet->user->profile_image_url)
  • スクリーン名($tweet->user->screen_name)
  • テキスト本文($tweet->text)
  • 単数の投稿画像($tweet->entities->media[0]->media_url)

最初の4つは、ドキュメントのExample Resultで返される値ですが、最後の1つは、Twitterで使われているオブジェクトを実体化しています。
このネタは以前も書きました)

<?php
require_once("twitteroauth/twitteroauth.php");

$consumerKey = "MYCONSUMERKEY";
$consumerSecret = "MYCONSUMERSECRET&amp;quot";
$accessToken = "MYACCESSTOKEN&amp";
$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'=>'200',
        'screen_name' => 'MYSCREEN_NAME',
        'include_entities'=>true
$results = json_decode($request);
?>
<?php
if(isset($results) &amp;amp;&amp;amp; empty($results->errors)){
    foreach($results as $tweet){
?>
    <?php echo date('Y-m-d H:i:s', strtotime($tweet->created_at)); ?></br>
    <img src="<?php echo $tweet->user->profile_image_url; ?>"></br>
    <?php echo $tweet->user->screen_name; ?></br>
    <?php echo $tweet->text; ?></br>
    <?php echo $tweet->entities->media[0]->media_url; ?></br>
    <?php } ?>
<?php }else{ ?>
        <?php echo "関連したつぶやきがありません。"; ?>
<?php } ?>

複数の画像を取得するためのコード。が…

複数の画像を取得するためのコードも、だいたい同じです。

<img src="<?php echo $tweet->entities->media[0]->media_url; ?>">

entitiesというオブジェクトを

<img src="<?php echo $tweet->extended_entities->media[0]->media_url; ?>">

extended_entitiesにしているだけです。ですが、なぜかこれでは、複数の画像を呼び出すことはできません

multiple_media1

元のつぶやきには3枚の画像が投稿されていますが、

taiyounotou_2

今回GETで参照したつぶやきには、画像が1枚しか表示されていません。

Uploading Media: Multiple PhotosのSample outputを読むと、それらしきことが書いているんですが。どういうことでしょうかね?

〔参考サイト〕