🏠

Twitter の user_id を用いてそのユーザのホームページにアクセスする方法

2020/09/17に公開

結論

https://twitter.com/i/user/:user_id にアクセスすると、ユーザのホームページ(URL)にリダイレクトされます

背景

Twitter の REST API(v1)では、ユーザの情報として user_id の値を取得することができます。この user_id はユーザごとに割り当てられている一意の数値です。

参考: GET followers/ids | Docs | Twitter Developer

よく目にする @zenn_dev という文字列は screen_name と呼ばれるものです(正確には @ は含まれません)。この screen_name はユーザが任意に変更できるため、一意性が保証されません。

一方で user_id ならば一意性が保証されます。したがって、コード中でユーザを取り扱う場合にはこちらの値を用いるのが良いでしょう。

ただ、ユーザのホームページのURL( 例えば https://twitter.com/zenn_dev )には user_id の文字列が含まれておらず、screen_name のみが含まれています。もちろん user_id がわかっていればそこから screen_name は取得できます。しかし、貴重な Web API の 1回分 を消費してしまいます。

これが一人や二人のユーザに対してならば大きな問題は起きないでしょうが、一定の規模のユーザ数の screen_name を取得するとそれだけで Web API の Rate Limits に到達します。

そこで、user_id のみでユーザのホームページにアクセスする方法が知りたいということになります。

改めて結論

user_id のみでユーザのホームページにアクセスするには、以下の URL にアクセスすればよいです(:user_id の部分に user_id を当てはめる)。

  • https://twitter.com/i/user/:user_id

例えば、zenn_dev という screen_nameuser_id1192772490012938240 です。したがって、以下の URL にアクセスすると zenn_dev のユーザのホームページにリダイレクトされます・

この URL を見つけた経緯

上記の URL は公式のドキュメントには掲載されていない……はずです。では上記の URL をいつ見つけたのか、というと、タイムライン上に「〜さんが返信しました」や「〜さんがいいねしました」という表示にマウスをホバーさせたとき、です。

Image from Gyazo

Image from Gyazo

これらの文字列にマウスをホバーさせたとき、ステータスバーに上記の URL が現れて気づきました。

(参考)user_id を取得する方法

Web API を用いない場合は user_id を意識する必要はないかと思います。そして Web API を用いているということは user_id は容易に取得できていると思います。

したがって「user_id を取得する方法」を改めて説明をする必要はないでしょう。

ただ、Webブラウザから手軽に user_id を取得したい場合には以下のようなサービスがありますので、参考として挙げさせて頂きます。

(参考)intent/ を用いる方法もある

上記の URL の形式ではなく、intent/ を用いた以下の URL でも当該ユーザのホームページにアクセスできます。

  • https://twitter.com/intent/user?user_id=:user_id

ただ、この intent/ 込みの URL にアクセスすると「ようこそ! フォローできるようになりました。」というポップアップが必ず出てきます。これは本来的ではないと思うため、今回の説明からは省き「参考」という形で末尾に記載させて頂きます。

Discussion