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

Twitter_logo_blue

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

twitter_entities1

目次

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_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]
<?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]

twitter_entities3

〔参考サイト〕

Twitter_logo_blue

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

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