Twitterに投稿される画像の直リンク取得方法

Twitterに投稿される画像だけ集めたギャラリーサイトなど面白いのではないかと思い、ツイートに含まれる画像のURLを取得する方法について調べてみました。

テストがてら簡単につくったものですが、たとえば「須磨」という単語が含まれた写真付きのツイートを検索した結果はこのようになります
(´-`).。oO(夏休みですね。。。。。。)

AD

Twitter検索基本形

TwitterAPIが1.1になってからしばらくになりますが、単なる検索結果を得るためだけでも認証が必要となりました。

ツイート内に含まれる画像の直リンクを取得する

上記検索を実行の際、include_entitiesというパラメータをtrueに設定することによりツイート内に含まれるURLについての情報を追加で取得することができます。

詳しくはTweet Entitiesという公式ドキュメントを見てみてください。

画像でないURLについての情報も取得出来ますが、今回は画像に絞って見てみます。
タイムラインを見ていて画像投稿によく使われている(っぽく見える)、

・Twitter標準の画像投稿機能
・Twitpic
・ついっぷる
・フォト蔵
・Instagram

について画像URLの取得方法を調べてみました。

Twitter標準の画像アップロードの場合

外部サービスを経由せずに画像を投稿した場合、画像そのもののURLが「media_url」というキーで取得できます。
上記の検索基本形のように$obj->statusesをforeachでループした場合、以下のように取得できます。

ただ、外部の画像投稿サービスを利用した場合はmedia_urlでは取得することができません。
代表的jな画像投稿サービス別に、取得方法を調べてみました。

TwitpicのURLから画像URLを取得する

TwitPicの場合、URLの一部を置換することで画像そのもののURLが取得できます。
Twitter標準ではない画像投稿を使った場合、expanded_urlというキーにリンク先URLが入ります。ただこれは画像のURLではなく詳細ページ(という言い方でいいのでしょうか・・・)のURLですので、そのURLより画像URLを取得する必要があります。

ついっぷるのURLから画像URLを取得する

ついっぷるの場合もTwitpicと同様に、URLの一部を置換することで画像URLが取得できます。

フォト蔵のURLから画像URLを取得する

フォト蔵もほぼ同様ですが、フォト蔵の場合は写真掲載URLにはユーザーIDが含まれますが画像URLにはユーザーIDが含まれません。そのユーザーIDの部分を除く必要があります。

InstagramのURLから画像URLを取得する

InstagramはURLを単純な置換で取得することが出きず、必要ない場合でもJSONが返却されます。
そこでそのJSONをfile_get_contents→json_decodeという手順が必要です(URL取得だけならjson_decodeではなくpreg_matchなどのほうがいいような気もするが)。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

幸太郎 さんより
大変参考になりました。
ありがとうございました!
れい さんより
とても参考になりました!
ありがとうございます!

すいません、1つお伺いしてもよろしいですか?
この方法で、「Twitter標準の画像アップロードの場合」のときは、画像URL以外も拾ってしまいます。
例えばただのリンクの場合も拾ってしまいますが、
「画像」という判定はできるのでしょうか。

よろしくお願いします。
管理人 さんより
れい 様
コメントありがとうございます。

mediaというキーが入るのはTwitter標準の画像アップロードだけのはずなのですが、おかしいですね。。。

Twitter標準の画像アップロードのときは

$statuses->entities->media[0]->media_url;

で、それ以外は

$statuses->entities->urls[0]->expanded_url;

となりますが間違いはないでしょうか?
door entry systems Glasgow さんより
I enjoy what you guys are up too. Thiis kind of clevfer work annd exposure!

Keep up the awesome works guys I've incorporated you guys
to myy own blogroll.
Leicester Paving Slabs さんより
Hello to all, as I amm really keen of reading this weeb site's post
to be updated on a regular basis. It consists of pleasant stuff.
pusat plakat さんより
Thatt comes from approximately 32 million contractions in mere one year.
Blockage with the arrteries is in charge oof many serious conditions for example cardiac
event or stroke and is imnportant iin all sorts of minor
ones including fatigue, breathlessness, edema, and poor memory.
We have the classic tape, there is the self-adhesive
backjed photo corner, dry picture mountikng technique, wet mouting method and spray mounting technique.
Newark afternoon tea さんより
Hi there! I know this is kinda offf opic but I'd figured I'd ask.
Would youu be interested inn trading links or maybe
guest authoring a blog post or vice-versa?
My website addresses a lot of the same topics as yours and I believe we could greatly benefit from
each other. If you're interested feel free tto send me an e-mail.
I look forward to hearing from you! Wonnderful blog by the way!
Plakat Kayu さんより
Thewse fats, apong with chemicals, become polluttants to yoir body.
A polluted, malnourished stomach and intestinal tfact is
the best environment for parasites and worms.
We have the clasdsic tape, there is a self-adhesive backed photo corner,
dry picture mounting technique,wet mounting
method and spray mounting technique.
gantungan kunci akrilik さんより
This is a consideration which might bring about the prosperiy off your business.
A polluted, malnourished stomach and intesstinal tract is tthe perfect environment for parasites and worms.
The pfice varies with the materials used and its design and it's also surely worth every dollar you spent.