2011年7月3日日曜日

[API] Twitter上にツイートされたURLの数を調べる


こういうボタンを見たことあるでしょうか?ツイートボタンを呼ばれて、ブログやニュースなど、そのページをツイッターでみんなに伝えたいときに、使うボタンです。

ボタンの隣には、そのページがツイートされた回数が表示されます。

このボタンを自分のサイトに設置するのは簡単にできます。
公式TwitterにHTMLタグを生成するページがあります。
http://twitter.com/goodies/tweetbutton


ボタンはページ毎にURL属性(data-url)を変える必要がありますが、プログラムでタグの属性を変えてあげれば簡単にできます。

それでは、本題。
ツイートボタンの数字、そのページがツイートされた回数を取得するにはどうするか?

Twitter APIにツイート内に含まれるURL数を取得する機能があります。

次のURLに、GETリクエストで、パラメータurlに取得したいURLを指定すると、JSON形式でURL数を取得できます。
http://urls.api.twitter.com/1/urls/count.json

例えば、
http://urls.api.twitter.com/1/urls/count.json?url=http%3A%2F%2Fkumacoro.blogspot.com%2F2011%2F02%2Fmacfirefox.html

とすると、
"count":4,"url":"http://kumacoro.blogspot.com/2011/02/macfirefox.html/"

という結果が帰ってきます。countの部分の数字を取得すればOKです。

PHPで取得できるプログラムを書いてみた。
function getNumberOfLinkInTwitter($url)
{
  // ストリームを作成する
  $opts = array(
    'http' => array(
      'method' => 'GET'
    )
  );
  $context = stream_context_create($opts);
  
    // ファイルを取得する
  $file = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url='.urlencode($url), false, $context);
  
  $json = json_decode($file, false);
  
  return (isset($json->count)) ? intval($json->count) : false;
}

0 件のコメント:

コメントを投稿