Twitterの検索APIを使ってツイートに添付されている、画像の取得をしたいと考えています。その方法はこちらのブログで紹介されています。
Twitterオブジェクトの実体化
Twitter Developersのドキュメンテーションを調べると、引数(Parameters)のうち、include_entitiesをtrueにしておけばOKかと。
[php]
$param = array(
"q"=>$keywords, // keyword
"lang"=>"ja", // language
"count"=>100, // number of tweets
"result_type"=>"recent", // result type
"include_entities"=>true // entities
);
[/php]
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]
<?php echo $tweet[‘entities’][‘media’][‘media_url’]; ?>
[/php]
という具合にすれば、
https://pbs.twimg.com/media/○○○○○○○○○○○○○○○○.jpg
というアドレスが取得できるはず。ただし実際にやってみると、下記のとおり、画像は表示されません。黒丸のliタグのところに、ツィートに添付している画像を表示させるつもりです
おそらく上記のコードでは、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]
<?php echo $tweet[‘entities’][‘media’][0][‘media_url’]; ?>
[/php]
https://pbs.twimg.com/media/○○○○○○○○○○○○○○○○.jpg
またイメージタグのsrc属性に入れることで、画像が表示されるようになります。
[php]
<img src="<?php echo $tweet[‘entities’][‘media’][0][‘media_url_https’]; ?>
[/php]
〔参考サイト〕