1. TOP
  2. Webサービス
  3. Twitter
  4. Twitterの検索APIの画像を取得するために実体化するPHPのコード。[‘entities’][‘media’][‘media_url’]について

Twitterの検索APIの画像を取得するために実体化するPHPのコード。[‘entities’][‘media’][‘media_url’]について

|
Twitter_logo_blue

Twitterの検索APIを使ってツイートに添付されている、画像の取得をしたいと考えています。その方法はこちらのブログで紹介されています。

twitter_entities1

Twitterオブジェクトの実体化

Twitter Developersのドキュメンテーションを調べると、引数(Parameters)のうち、include_entitiesをtrueにしておけばOKかと。

$param = array(
    "q"=>$keywords,                  // keyword
    "lang"=>"ja",                   // language
    "count"=>100,                   // number of tweets
    "result_type"=>"recent",       // result type
    "include_entities"=>true       // entities
);

include_entitiesのentitiesとは、Twitterで使われている、オブジェクトの実体化のことを指していると考えられます。

この実体化できるオブジェクトは、主に4つに分かれています。

  • Tweets
  • Retweets
  • Users
  • Direct Messages

中でも、Tweetsオブジェクトは、さらに4つに分けることができます。

  • media
  • urls
  • user_mentions
  • symbol

これらの中でも、特にmediaを実体化すれば、ツィートに添付されている画像が取得できるようです。ドキュメンテーションを見ると、次のように説明されています。

The media entity
An array of media attached to the Tweet with the Twitter Photo Upload feature. Each media entity comes with the following attributes:

※ただし、このドキュメンテーションを読む限り、複数の画像取得については言及されていません。おそらく、SearchのAPIではできないかと思われます。

オブジェクトを実体化するコードについて

ここから、例えば、

<?php echo $tweet['entities']['media']['media_url']; ?>

という具合にすれば、

https://pbs.twimg.com/media/○○○○○○○○○○○○○○○○.jpg

というアドレスが取得できるはず。ただし実際にやってみると、下記のとおり、画像は表示されません。黒丸のliタグのところに、ツィートに添付している画像を表示させるつもりです

twitter_entities2

おそらく上記のコードでは、Twitterオブジェクトを実体化するためのコードが、間違っているのではないかと推測します。一応、このコードもGitHubにアップロードしておきます。上記のPHPに関わるコードは、twitter.phpの75行目にあります。

echizenyayota/tw_entities1 Github
https://github.com/echizenyayota/tw_entities1

追記:2014年9月27日

この記事を書いたのちに、ブログの読者の方からPHPのコードに関するアドバイスをいただくことができました。

教えていただいた内容とは、[‘media’]と[‘media_url’]の間に[0]を入れることです。こうするとURLが出力されます。

<?php echo $tweet['entities']['media'][0]['media_url']; ?>
https://pbs.twimg.com/media/○○○○○○○○○○○○○○○○.jpg

またイメージタグのsrc属性に入れることで、画像が表示されるようになります。

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

twitter_entities3

〔参考サイト〕