SATOXのシテオク日記

~ふもっふ、ふもふも~

Pochitterのエラー原因判明

Pochitterのエラーの原因が分かりました。
結論は一部のユーザだけで起きるTwitter APIのバグ。
問題が起きている方に対して、そのバグを再現させるための方法を示します。(SATOXは悪くないのよ、という言い訳ですがねー)
 
API的にフォローの一覧、被フォローの一覧はそれぞれ「friends」「followers」というのですが、この問題の再現はブラウザから少々のパソコン知識があれば簡単にできます。
 

■フォロー情報を取得する
最初の情報取得
ブラウザで以下のURLを指定して情報を取得します。
<スクリーン名>内は検索したいスクリーン名です。

http://twitter.com/statuses/followers/<スクリーン名>.xml?cursor=-1

 
するとXMLテキストがぶわーっと表示されましたね?
(もしかしたらここでエラーが起きる方もいるかもしれません)
この情報がそのスクリーン名指定したユーザの被フォローユーザ情報一覧で最大100件分が含まれています。
 

次の100件の情報を取るよ
もし、100人以上の被フォローユーザがいる場合、次の100件の情報を取る必要があります。
そのためには次の「カーソルを示すID」が必要となります。
最初に取得したときに「cursor=-1」と表示されているのが「カーソル」です。
次のカーソルは最初に取得したXMLテキストの末端に書いてあります。(数字はダミー)

1234567890123456789
0

「next_cursor」と書いてあるのが次の100件を示すカーソルです。
先ほどの「cursor=-1」の代わりに「cursor=1234567890123456789」を指定します。

http://twitter.com/statuses/followers/<スクリーン名>.xml?cursor=1234567890123456789
(数字はダミー)

これを繰り返すことで情報を取得していきます。
ちなみに、フォロー一覧を取得するためには「followers」を「friends」に変えて「cursor=-1」から取得してください。

エラーがでたよ
というわけで、このまま情報を取得していくとXMLテキストが「0」になって終了するのですが、特定のスクリーン名(ユーザ)でこの情報取得を進めていくと以下の画面になります。これがエラーの原因で、何度リトライしても同じエラー。この先の情報が取得できません。XMLテキスト中のこの数値が間違っているじゃないかと思います。
PochitterはこのAPIの情報に頼っているので、どうしようもないというのが正直なところです。

Something is technically wrong.
Thanks for noticing―we're going to fix it up and have things back to normal soon.

特にTwitter APIの情報を見てみても不具合情報は見つからない……。う〜ん、早く直して欲しい。

■Twitter API Wiki / Twitter REST API Method: statuses?friends

Twitter APIが修正されない限りは回避方法はなさそうです。Webからでも情報は取れるのですが、すぐ仕様が変わるし…。

■Pochitterのエラーはこれかな? - SATOXのシテオク日記

■Pochitter Ver.1.10を公開しました - SATOXのシテオク日記

■TwitterのFriends/Followers/Followingユーザ一覧表示ツールを作ってみた