ツイッターはアプリ開発者向けにAPIを公開しています。
APIを使ってツイート分の取得や投稿、プロフィールの設定などが出来るようになってます。
ほとんどのAPIがリクエストはHTTPによるGET、SET、POST、DELETEで行い、レスポンスはJSONフォーマットのテキストデータで返す仕様です。
実際に利用するには
https://apps.twitter.com/
からCreate New Appでアプリを登録してConsumer KeyやConsumer Secretを発行してもらう必要があります。
Webアプリの勉強がてらにツイッターAPIを使って悩んだことがあったのでその内容をまとめてみました。
特定のプラットフォームに限定されない話なのでソースコードはありません。
環境
・Windows8.1・Visual Studio Community 2013
・CoreTweetライブラリーなど
検索APIでは複数の画像のURLが取得できない
検索APIはツイッターを検索するAPIです。公式ドキュメントはこちら
https://dev.twitter.com/rest/reference/get/search/tweets
非サブスクリプションの開発者でも使えますが過去1週間以内の投稿しか検索できないなどの制限があります。
特に複数の画像を投稿されたツイートを検索しても、一つの画像のURLしか取得できない制限があります。
たとえば、次のツイートは二つの画像が投稿されています。
multiple pics pic.twitter.com/KLMUbWg2TF
— Mtk Fujiu.jp (@mtk_f) 2015, 5月 5
このツイートを検索APIで取得したJSONデータの画像に関する部分は次の通りです。(一部省略)
最初の1件の画像URLしか取得していません。
全ての画像URLを取得するにはSearch以外のAPIを使う
検索APIだけは1件の画像しか取得できませんが、他のAPIを使えば全ての画像URLを取得できます。statuses/show/:idというAPIは全ての画像URLが取得できました。
公式ドキュメントはこちら
https://dev.twitter.com/rest/reference/get/statuses/show/%3Aid
statuses/show/:idはステータスIDを指定してJSONデータを取得するAPIです。
検索APIで取得したステータスIDをstatuses/show/:idでJSONデータを取得すると次のようになります。
無事に2枚の画像URLを取得することが出来ました。
検索APIだけ特別らしい
statuses/show/:id のほか statuses/user_timeline でも全ての画像URLが取得できました。検索APIだけが特別なJSONを返すようです。
画像URL以外もおかしい値があるかもしれません。
関連ブログ
[セキュリティ] Twitterの「このリンクは安全ではない」「このリクエストを保留しています」の対策2015年版[Unity3D] Visual Studio Community 2013を日本語化してUnityアプリを作る
[C#] タスクトレイにバルーンチップを表示するアプリ
以上、参考になれば幸いです。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。