フォロワーの取得

ぼちぼちとクライアント作りを勧めているわけであるが、ちょっと悩んだことがあったのでメモ。
Twitterでフォロー・フォロワー取得をする際は

GET statuses/followers
GET statuses/friends

を使えば、とりあえず取得することは出来ます。
たとえば、ログインした状態で

とすれば、json形式で自分のフォローしているユーザーを取得することが出来ます。
ただ、これだと100件しか取得できないので、

http://api.twitter.com/1/statuses/friends.json?cursor=数値

のようにしてやるとcursorの位置まで、フォローを巡ってくれます。
このAPIを実行するとnext_cursorの値が返却されるので、この値を使えばフォローを遡ることが出来ます。

スポンサードリンク

今回はnext_cursorの値の取り扱いで悩みました。
C#で、next_cursorの値とAPIのURLをそのままAPI実行メソッドに渡し、実行しようとするとエラーが発生してしまいました。
私が使わせて貰ったコードでは、どうやらstring型の引数を渡すようになっていて、next_cursorで受け取った値がどうやらstrign型の値では無かったららしい。
デバッグしてみると、double型の数値が取得されていました。
しかし、その数値をtoString()でstringに変換して、cursorに代入してもうまくいかない。

ここで数分悩んだ末、long型にキャスト変換したものをstringに変換して渡してやることで問題は解決しました。
string cursor = "-1";
var timeline = gtm.GetAPI("http://api.twitter.com/1/statuses/friends.json", cursor);
var tl = DynamicJson.Parse(timeline);
foreach (var tls in (dynamic[])tl.users)
{
   Console.WriteLine(tls.screen_name);
}
var cu = (long)tl.next_cursor;
cursor = cu.toString();
こんな感じに。全コード掲載は長くなるため、必要な部分だけの掲載とさせていただきました。
ちなみに、long型の変数に代入しようとしたが、それもエラーを吐かれてしまいました。

色々ググって見ても、PHPやRubyといったスクリプト言語の例はあるが、C#での例があまりヒットしませんでした。
たいしたことじゃないから載せるサイトは少数派なのでしょうか・・。
取得の仕方自体を知るには、他言語で自分の知ってる言語の例ならば多少は参考になりますが・・。
ではでは。

スポンサードリンク
Pocket

Comments are closed.