2011-04-21 25 views
0

私はそれが私やみんなで確認してください知っている、私は次のコード奇妙なTwitterのAPIの動作

http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=barbara_volkwyn

http://api.twitter.com/1/statuses/user_timeline.xml?user_id=248623669

を持つどうやらTwitterのAPIに従って、SCREEN_NAME = "barbara_volkwyn" を持つユーザーが持っていますしかし、上記のAPI呼び出しを実行すると、2番目のAPI呼び出しを実行しようとすると奇妙なことが起こります。返された結果に含まれるユーザーオブジェクトは同じユーザーではありません。

誰もが同じ問題を抱えているのをお見逃しなく、試してみてください。

よろしく、 アンディ。

+1

あなたはどこからユーザーIDを取得していますか?私はこの作品を手に入れます:http://api.twitter.com/1/statuses/user_timeline.xml?user_id=264882189 –

+0

こんにちはトーマス、私が混乱しているケースバイケース... – cherhan

答えて

0

Search APIによって報告されたuser_idsは、Twitter REST APIで使用されているuser_idsと同じではありません。確かにuser_idが見つかったかどうかわかりません。248623669

タイムラインには、埋め込まれた(ただしキャッシュされた)ユーザオブジェクトが含まれているツイートが含まれています。通常、ツイートが公開された時点でのユーザの状態を反映します。ユーザーがscreen_namesを変更することがあるので、@barbara_volkwynという名前のユーザーは、ある日user_id 1234、翌日user_id 5678、user_id 1234のtweetはscreen_nameにかかわらず常にuser_id 1234に属します。

REST APIによる@babara_volkwynのuser_idは264882189です。誰かが同じスクリーン名を保持していて、別のuser_idを保持している可能性があります。 Twitterユーザーのアイデンティティを確実にする唯一の方法は、REST API user_idによってそれらを参照することです。screen_namesは一時的なものであり、いつでもエンドユーザーが変更できます。

前述のように、ステータス内で使用されるキャッシュされたユーザーオブジェクトは古くなる可能性があります。単一のユーザーアカウントに関する最新情報の最も信頼できるソースは、user/show APIメソッドです。最近のツイートに関するアカウントの最新情報の最も信頼できる情報源は、status/user_timelineメソッドです。

埋め込みオブジェクトはほとんどのシナリオで機能しますが、最大限の精度を求める場合は、個別のリソースが最適です。

ありがとう、テイラー。

+0

こんにちはテイラー私は、ストリームまたは検索APIからuser_idを取得し、私はuser_idまたはscreen_nameを確認するために何を手動で行うのですか。このシナリオは次のようになります。たとえば、「fire」というキーワードを検索しているので、「fire」についてツイッターしたユーザーがツイートのリストを返し、tweetにuser-idとscreen_nameというユーザーオブジェクトが含まれます。 user_idとuser_timelineメソッドを使用すると、結果は全く異なりますが、screen_nameを使用しても同じ結果が得られますので、ユーザーがscreen_nameを10秒以内に変更するケースはあまり有効ではありませんか? – cherhan

+0

私は、screen_nameの変更がこの特定のケースに関係していて、いくつかの要因によって混合結果が表示されているという事実からかなり確信しています。API内の期限切れのキャッシュ(Tweet内の埋め込みユーザーオブジェクト、ユーザーオブジェクト内の埋め込みツイート)、および検索API(同じケースですが、search.twitter.comのすべての結果で全く異なるユーザーIDスキーム - 対応していません)。画面名の変更には、一般的に時間がかかります。 –