Hatena::ブログ(Diary)

[Mi]みたいなもの RSSフィード Twitter

2010-06-03

Twitterのユーザーを特定する方法

ユーザー名を変更しても、Twitterのユーザーを確認・特定するのってかなり面倒です。

そこで変更されたユーザー名=別ユーザーとするのも一つの手です。

ユーザー名を変更した、ユーザー自身の趣旨・意思にもたぶん沿います。


一方、ツイートアーカイブするようなサービスを提供している場合には、この手がとれないですよね。

ではどうすればいいでしょうか。


前提

Twitterのユーザーは、ユーザー名(http://twitter.com/(ユーザー名)/として使われる部分。)では特定できません。

ユーザー名は簡単に変更できるからです。



Twitterの検索APIをお使いの方は、そこで表示されるfrom_user_idで特定している方も多いと思います。

しかしfrom_user_idでも特定できません。

from_user_idは、ユーザー名の変更と共に変わっている様子だからです(ガーン)


しかしTwitterはユーザー名を変更しても、ツイートやフォロー・被フォローのリレーションを切れずに維持しています。

内部のシリアルのようなもので管理しているのでしょうか。



結論

1.Twitterのユーザーを特定するのはuser_id。

2.user_id≠from_user_id(←なんだってー)

3.user_idは、ユーザー情報関連のAPI"show"でわかる。


詳細

1.Twitterのユーザーを特定するのはuser_id。

上記事情から、ユーザーの同一性を確認するには、user_idを保管しておく他ありません。

from_user_idやユーザー名では、ユーザー名の変更で変わってしまうので対応できなくなります。



2.user_id≠from_user_id(←なんだってー)

検索APIのfrom_user_idと実際のID違うとかwwwwwwふざけんなwwww (ryless than a minute ago via Twit


ホントウデスヨ(T_T)

なにか事情があるのでしょうが、もう少しまぎらわしくない名前をつけてくださいな。


from_user_idって書かれたらこれはツイート主のユーザーID→ユーザー名を変更しても変わらないもの、と思っちゃいますよねぇ……(上で書いたとおり、変わります)




3.user_idは、ユーザー情報関連のAPI"users/show"でわかる。

http://twitter.com/users/show/(ユーザー名).xml

と投げれば、冒頭に<id></id>で囲まれたところに、user_idが保管されてますので、これを引っ張っておけば吉。


しかし「ただし、指定ユーザが自分の friend でない場合、この API の実行は失敗する」そうですが、今のところ確認した範囲では無関係でもとれてます(ブラウザからは表示できますが、スクリプトからは失敗しました)。

他に確実な方法がみつかったら書き換えます。


一番確実で簡単なのは、http://twitter.com/(ユーザー名)/のrel="alternate"をみれば、RSSのファイル名がuser_idになっているので、ここからひっぱることなんですが、一応APIを通じて取るのが原則ですからねぇ……


Twitter API 仕様書 日本語訳 第四十九版 (2010年3月3日版) (404 Blog Not Found)

 http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt


<追記>2010/07/04

未確認ですが、修正予定とのこと。そりゃそうですよね……。

情報ありがとうございます。


システム修正の歴史的事情から来る問題だそうです。API Ver2で修正される予定とのこと。

TwitterAPIのuser_idとfrom_user_idは別物です - スタックスリー開発資料室


<追記>2010/11/08

以下の記事をかきました。

from_user_id_strなんてのが追加になっているので気をつけてください。


スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証