Twitter 検索API メモ
【2010-02-28 追記】
いつの間にやら結構な数のブックマークをして頂いて、
情報が古いままでは心苦しいので、1年ぶりくらいになってしまいましたが、情報を更新しました。
思ったほど変更はなかったのでよかったです。
〜〜 ここから元々の本文 〜〜
http://apiwiki.twitter.com/Twitter-API-Documentation の「Search API Methods」について のメモですが、
英語がかなり苦手なので、間違ってるとこもあるかもしれません。
あと、大してtwitterを使ってなかったりするので、
twitterの機能面でよくわかってない部分もあります。
検索API : http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search
出力形式
AtomとJSONに対応。リクエストURLはそれぞれ以下(メソッドはGETで、認証は必要無し)。
- http://search.twitter.com/search.atom?q=
- http://search.twitter.com/search.json?q=
(※) JSONの場合は、「callback」パラメータをつけることでJSONPになる
ex. http://search.twitter.com/search.json?callback=foo&q=twitter
-
-
- -
-
リクエストパラメータ
- q:検索クエリ
(※) 「"」や「#」、「)」、「(」などはURLエンコードの必要あり
まずは、一般的な検索エンジンと同様に、以下の検索が可能
-
- AND検索は、クエリを「+」(スペース)で繋ぐ
- OR検索は、クエリを「+OR+」で繋ぐ
- NOT検索は、除外したいクエリの前に「-」をつける
- フレーズ検索は、フレーズを「"」で囲む
特別なオペレータもいくつか存在する
-
- from:
- 指定した
のtweetsから検索 - ex. http://search.twitter.com/search.atom?q=from:alexiskold
- 指定した
- from:
-
- to:
- @
で始まるtweetsから検索 - ex. http://search.twitter.com/search.atom?q=to:techcrunch
- @
- to:
-
- @
- @
を含むtweetsから検索 - ex. http://search.twitter.com/search.atom?q=@mashable
to:「to:」はリプライ(tweet先頭に@user)で、「@」は参照(tweetのどこかに@user)ですねとどう違う?
- @
- @
-
- since:
- 指定した日時から現在までに投稿されたtweetsから検索
- ex. http://search.twitter.com/search.atom?q=superhero+since:2009-03-17
- 指定日時が古い場合は、404を返す
- NOT検索(-since:)はできない
- since:
-
- until:
- 指定した日時までに投稿されたtweetsから検索
- ex. http://search.twitter.com/search.atom?q=ftw+until:2009-03-17
(※) ただし、後述の「制限事項」でも記載している通り、APIで利用できるデータは4ヶ月前のものまで- 指定日時に未来は指定できない
- NOT検索(-until:)はできない
- 10日前後くらいまでしか結果が返ってこない気がする
- until:
-
- #
- 指定したhashtagの付いているtweetsから検索
- ex. http://search.twitter.com/search.atom?q=#haiku
- ハッシュタグは16文字まで
- #
-
- :)
- 「positive attitude」なるものが付いているtweetsから検索
- ex. http://search.twitter.com/search.atom?q=movie+-scary+:)
- 結果を見た感じ、「:)」「:-)」「=)」「:D」などがpositive attitudeらしい
- :)
-
- :(
- 「negative attitude」なるものが付いているtweetsから検索
- ex. http://search.twitter.com/search.atom?q=flight+:(
- 結果を見た感じ、「:(」「:-(」「:P」などがnegative attitudeらしい
- :(
-
- ?
- ?が含まれるtweetsから検索
- ex. http://search.twitter.com/search.atom?q=traffic+?
- ?
-
- filter:links
- リンクを含むtweetsから検索
- ex. http://search.twitter.com/search.atom?q=hilarious+filter:links
- 結果は7日以内のtweetsに制限される
- filter:links
-
- source:
- 指定したsourceを使ってpostされたtweetsから検索
- ex. http://search.twitter.com/search.atom?q=news+source:twitterfeed
- web、Tween、movatwitterなどなど(「from なんちゃら」ってとこ)
- 結果は7日以内のtweetsに制限される
- q=source:
だけでは検索できない。何かしらのキーワードと一緒に検索しないといけない。
- source:
-
- nearオペレータ&withinオペレータ
- Twitter Search のサイトで検索するときには使えるけど、APIでは使用不可能
- サイトで検索. http://search.twitter.com/search?q=near:tokyo
- API経由. http://search.twitter.com/search.atom?q=near:tokyo
- nearオペレータ&withinオペレータ
- lang:言語
- ex. http://search.twitter.com/search.atom?lang=ja&q=test
- all, en, ja など
- デフォルト:all
- 結果は7日以内のtweetsに制限される
- rpp:1回のリクエストで取得するtweetsの数
- ex. http://search.twitter.com/search.atom?lang=ja&q=test&rpp=50
- デフォルト:15
- 最大:100
- page:ページ番号(1から始まる)
- ex. http://search.twitter.com/search.atom?lang=ja&q=test&rpp=50&page=2
- 最大:(rpp×page が) 約1500くらいまで
- since_id:status ID
- 指定したstatus ID以降のtweetsから検索
- ex. http://search.twitter.com/search.atom?q=test&since_id=1373531617
- geocode:指定した緯度&経度を中心として、指定半径以内にいるユーザのtweetsから検索
- ユーザの位置情報は、Geotagging APIから取得しようとするが、できなければtwitter profileのものが使用される
- 緯度・経度・半径の値は、カンマ区切りで指定
- 半径の単位は、mi(マイル) か km(キロメートル) で指定する
- ex. http://search.twitter.com/search.atom?geocode=40.757929,-73.985506,25km
- APIでは、qパラメータのnearオペレータが使えない代わりに、このパラメータで直接位置を指定できる
- OR検索はサポートしない
- 結果は7日以内のtweetsに制限される?*2
- show_user:
- tweetの文頭に"
:"を追加する - rss readerでauthorフィールドを非表示にするために使う
- デフォルトはfalse
- true. http://search.twitter.com/search.atom?q=test&show_user=true
- false. http://search.twitter.com/search.atom?q=test
- tweetの文頭に"
- locale:
- 送信するクエリの言語を指定できる(現在は ja のみ有効)
- これは言語特有のクライアントのための機能で、大体はデフォルトで(指定しなくて)問題ない
(※) 制限事項(注意点)
約4ヶ月以内のデータのみ利用可能これに関する記述が2010-02-28時点では見つけることができませんでした。現在、どの程度以前までのデータが使えるのか不明です。- nearオペレータは使えないので、geocodeパラメータに置き換える必要がある
- クエリの長さは140文字まで
- クエリはURLエンコードすべきである
- 検索結果に反映されないユーザがいるかもしれない
- The since_id parameter will be removed from the next_page element as it is not supported for pagination. If since_id is removed a warning will be added to alert you.*3
- since_idが古い場合は404エラーを返す
- もし、クエリの生成で悩むことがあれば、advanced search formを参考にするとよい
- uniqueで意味のあるUserAgentを使用すべき
- リファラはあった方がよいが、必須ではない
- Warning:「検索APIのユーザID」と「REST APIのユーザID」は一致しない。状況は、Issue214 で確認できる。一致させるには、IDではなく、表示名を使って一致させる必要がある
Guidelines
trends : http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-trends
- http://search.twitter.com/trends.json
- 現在twitter上で人気のある10トピックを返す
- メソッドはGET, 認証は無し
- 出力形式はJSONのみ(callbackパラメータは利用可能)
- 結果は、以下が含まれる
trends/current : http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-trends-current
- http://search.twitter.com/trends/current.json
- 現在人気のある10トピックを返す
- メソッドはGET, 認証は無し
- オプションパラメータ:
- exclude=hashtags
- 結果からhashtagを除外する
- ex. http://search.twitter.com/trends/current.json?exclude=hashtags
- exclude=hashtags
trends/daily : http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-trends-daily
- http://search.twitter.com/trends/daily.json
- 指定した日の毎時間の人気トピックスを20個ずつ返す
- つまり、24(時間)×20個の人気トピックスが返ってくる
- メソッドはGET, 認証は無し
- オプションパラメータ:
- date=<日時>
- 日時の形式は YYYY-MM-DD
- ex. http://search.twitter.com/trends/daily.json?date=2009-03-19
- dateを指定しなかった際は、昨日のデータが返ってくる
- exclude=hashtags
- 結果からhashtagを除外する
- ex. http://search.twitter.com/trends/daily.json?exclude=hashtags
- date=<日時>
trends/weekly : http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-trends-weekly
- http://search.twitter.com/trends/weekly.json
- 指定した日から、一週間の各日の人気トピックスが30個ずつ返ってくる
- つまり、7(日間)×30個の人気トピックスが返ってくる
- メソッドはGET, 認証は無し
- オプションパラメータ:
- date=<日時>
- 日時の形式は YYYY-MM-DD
- ex. http://search.twitter.com/trends/weekly.json?date=2009-03-19
- dateを指定しなかった際は、7日前〜昨日のデータが返ってくる?
- exclude=hashtags
- 結果からhashtagを除外する
- ex. http://search.twitter.com/trends/weekly.json?exclude=hashtags
- date=<日時>