BackTweetsを利用してTwitterでの言及を拾う


特定のサイト(もしくはURL)に関するTwitterでの言及を拾うには、「BackTweets」というサービスを利用すると便利です。

BackTweets


アクセスして表示された検索欄にURLを入力して「SEARCH」を押すだけで、そのURLを含む言及が表示されます。例えば、ニコニコ動画(http://www.nicovideo.jp)に関する言及は以下で取得することが出来ます。

http://www.nicovideo.jp — BackTweets

定期的にデータを取得する

定期的に情報を取得したい場合、次の3つの方法があります。


1. RSSでデータを取得する

検索結果はRSS形式(RSS2.0)で書き出されているので、そのままRSSリーダーで取得することが出来ます。さきほどのニコニコ動画での検索結果を例にすると、以下のような感じになります。

検索結果
http://backtweets.com/search?q=http%3A%2F%2Fwww.nicovideo.jp
RSS
http://backtweets.com/search.rss?q=http://www.nicovideo.jp


2. メールで受信する

右メニューにある「Receive E-mail Alerts」をクリック。


表示された各欄に、検索対象のURL、受信したいメールアドレスを入力し、受信頻度(1日1回、新着毎、週1回)を選択して「Add Alert」を押す。


登録したメールアドレスに確認メールが送られてくるので、メール内のURLをクリックして認証すれば登録完了。


サイトを見る限りは受信頻度を変更する機能はないんですが、同じURL、同じメールアドレスを入力して受信頻度を変えて登録すると変更して登録されるみたいです。通知を停止する機能は……見あたりませんけど(苦笑)


3. APIを利用する

以下の記事を書いてから気付きましたが…これTwitter Search API のserach Methodで十分出来るんじゃないの?Twitter APIならAPI KEYは要らないし言語の設定などのオプションは使えるし。APIの制限も1時間100回までで少し緩いし。

…そう思って試してみたんですが、Twitter Search APIでは短縮URL(bit.lyなど)を展開してくれないみたいですね。惜しい。

BackTweetsは、実は「BackType」というWeb上の様々なコメントなどを集積しリアルタイムで検索できるサービスの一部(BackTypeのTwitterだけを利用する限定機能)なので、BackTypeと同様にAPIが利用できます。

API — BackTweets


BackTypeのAPIからの切り分けなので利用できるAPIはシンプルです。

特定のURLでの検索結果をXML形式で取得するには以下を。

http://backtweets.com/search.xml?q=http%3A%2F%2Fwww.youtube.com&key=API_KEY

同じ内容をJSON形式で取得するには以下を叩いてやればOKです。

http://backtweets.com/search.json?q=http%3A%2F%2Fwww.youtube.com&key=API_KEY


オプションで使えるのは以下の3つ。

  • itemsperpage … 1回のリクエストに含める結果の数。10-100の間で、デフォルトは25。
  • page … 何ページ目から取得するか。
  • since_id … tweet_idを指定するとそのID以降のTweetが取得できます

URL中の「API_KEY」は、BackTypeのDevelopersに登録すると取得できます。

API Documentation — BackType

…が、実はサンプルに書かれている「key」をAPI_KEYとして利用しても動いちゃったりします(苦笑)
そんなんで良いのだろうかw




注意点

1. 動作が不安定なときがある

稀に動作が著しく不安定になって、全然無関係な検索結果(恐らく条件を設定しない最新のTweets)が表示されてしまうことがあります。Web上でもRSSでもAPIでも同様です。そうなるとどうしようもないので、しばらく我慢するしかありません。

何か作るときも、それを想定して設計しておく方がよさげです。表示させる前に取得しようとしたURLでチェックしておくとか。


2. APIの利用は1日1,000リクエストまで

それ以上のリクエストを送ると、IPアドレス単位で遮断されます。
だいたい24時間経過すると解除されますが、注意が必要です。


3. APIの時間はGMT

APIの取得結果に含まれる投稿時間(tweet_created_at)にはタイムゾーンが含まれていませんが、これ、GMTです。それを忘れて処理すると妙なことになるので注意が必要です。まぁふつうは確認する or 気付くとは思いますが…