酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C#を使ってTwitterでシェアされたツイートの数を調べる

記事がシェアされた数を調べる方法がないか考えていると、Googleリーダーのトップに「la casa de nieve » Blog Archive » twitterのURLシェア数をAPI1廃止後でも(たぶん)取得できる方法」が掲載されていました。

Twitterでシェアされた数というのは、うちのサイト(下図)でいうところの黒丸で囲ったところです。

f:id:ch3cooh393:20130507000851p:plain

この値を取得できるんだったら嬉しい!と思い、さっそくC#で実装してみました。

public static int GetRetweetCount(string url)
{
    var fmt = "https://cdn.api.twitter.com/1/urls/count.json?url={0}";

    int retCount = -1;
    try
    {
        var urlTweet = string.Format(fmt, url);

        var client = new WebClient();
        var json = client.DownloadString(urlTweet);
        if (json != "")
        {
            var jobj = DynamicJson.Parse(json);
            retCount = (int)jobj.count;
        }
    }
    catch (Exception)
    {
        retCount = -1;
    }
    return retCount;
}

ドメイン部分がcdnになっていることからもキャッシュされた値が返ってくるということが分かります。リアルタイムにリツイート数が必要な場合はAPIを使用した方が良いでしょう。