2013/02/25

お気に入り数、リツイート数の取得ができるTwitter非公式API

TwitterのAPIで、特定記事のお気に入り数やリツイート数の取得ができないかなぁーと模索していたときに見つけた非公式APIを紹介します。自分のお気に入り数ではなく、特定記事のお気に入り数です。お約束ですが、非公式なので利用する際は、自己責任でお願いします。元ネタは、こちらの記事です。

API仕様

仕様については、正式なドキュメントがないのでわかりませんが、自分のツイートのみ取得できるんだと想像しています。APIコールには、OAuth認証が必要です。エンドポイントは、以下の通りです。

https://api.twitter.com/i/statuses/ツイートID/activity/summary.json  (GET)

レスポンス例

レスポンスは、こんな感じでお気に入りに登録した人、RTした人、返信した人の数がJSON形式で取得できます。集計用のAPIなので、リアルタイムではなく少し遅れて反映されます。
{
    "favoriters":[1234567],
    "repliers":[],
    "retweeters":[],
    "favoriters_count":1,
    "repliers_count":0,
    "retweeters_count":0
}

サンプル

以下は、PHPで作ったサンプルです。APIにアクセスするには、OAuth認証が必要なので、twitteroauth というライブラリを使っています。コード中のコンシューマキーなどは、自身のものに置き換えてください。ラメータの $tweet_id は、ツイッターの書く記事に割り当てられる ID です。
<?php
require_once(dirname(__FILE__)."/TwitterOAuth/twitteroauth.php");

define('TWITTER_CONSUMER_KEY', 'Your cusumer key');
define('TWITTER_CONSUMER_SECRET', 'Your consumer secret');
define('TWITTER_ACCESS_TOKEN', 'Your access token');
define('TWITTER_ACCESS_TOKEN_SECRET', 'Your access token secret');

function twitter_get_activity_summary($tweet_id) 
{
     $to = new TwitterOAuth(
          TWITTER_CONSUMER_KEY,
          TWITTER_CONSUMER_SECRET,
          TWITTER_ACCESS_TOKEN,
          TWITTER_ACCESS_TOKEN_SECRET
     );

     $url = 'https://api.twitter.com/i/statuses/'.$tweet_id.'/activity/summary.json';

     $req = $to->OAuthRequest(
          $url,
          "GET",
          array()
     );

     return json_decode($req);
}

// sample
$result = twitter_get_activity_summary('9912931923');
echo "Favoriters : " . $result->favoriters;

まとめ

冒頭にも書きましたが、非公式のAPIなので利用される場合は、自己責任でお願いします。おそらく、Twitterが自身のサイトの内部で使っているAPIだと思います。みなさん欲しいAPIだと思うので、次のAPI バージョンアップで追加されるといいなぁー。

0 件のコメント:

コメントを投稿