LoginSignup
4
2

More than 1 year has passed since last update.

Mastodon ユーザーのユーザID番号の簡単な確認方法

Last updated at Posted at 2017-10-14

ユーザーID番号が知りたい

マストドンの API で、ユーザー ID を使って、ちょっと試したいのでユーザーのID 番号が知りたい。つまり、 @hoge でなく数値の方の ID の確認・取得方法。

一番簡単な方法

Mastodon 上でアカウントのアイコンをクリックした時の URL に記載されているのが ID

  1. マストドンの Web 上から「ホーム」や「ローカル」のタイムラインで、対象となる(IDを知りたい)アカウントのトゥートを探す(自分の ID だったら自分のトゥート)
  2. カウントのアイコンをクリック
  3. URLの末尾のの数値(https://<ドメイン>/web/account/xxxxx の場合 xxxxx

API で自分のアカウント ID の ID 番号を確認する方法

  • メソッド: GET
  • ホスト: Mastodon サーバ(インスタンス)のドメイン名
  • エンドポイント: /api/v1/accounts/verify_credentials
  • アクセストークン: 必須 (要 Authorization: Bearer HTTP ヘッダ)
get_account_id.php
$access_token = 'xxxxxxxxxxxxx'; //※1
$domain       = 'sample.com';
$endpoint     = '/api/v1/accounts/verify_credentials'; //※2
$HTTP_method  = 'GET'; //※3

$query  = '';
$query .= " --header 'Authorization: Bearer ${access_token}'"; //※4
$query .= " -sS https://${domain}${endpoint};"; //※5

$command = "curl -X ${HTTP_method}${query}"; //※6

$result_json  = `$command`; //※7
$result_array = json_decode($result_json, JSON_OBJECT_AS_ARRAY);
$id_mine      = $result_array['id'];

echo $id_mine;
  • ※1:アクセス・トークンはマストドンのユーザー・アカウント画面の「開発」から発行すると楽です。
  • ※2:エンドポイント(REST でのリクエスト先 URL)
    トークンを認証したユーザーの情報を取得するエンドポイント。MastodonAPI のリファレンスの Mastodon API メソッド一覧より、要件に近いメソッドが「Accounts」メソッドなので、そのエンドポイントを確認します。(下図参照)
  • ※3:HTTP メソッド
    リファレンスのエンドポイントの文頭に記述されている HTTP メソッド(GET, POST, PUT, DELTE, PATCH)を控えます(下図参照)。これは、エンドポイントに HTTP リクエストする際に cURL オプションで指定するリクエスト・タイプです。
  • ※4:ヘッダにアクセストークンを指定
  • ※5:エンドポイントを完成させます
  • ※6:cURL の実行コマンド。あえて PHP の cURL 関数は使っていません。
  • ※7:アンサンクラーブ/バッククォート「`」で囲ってコマンド実行しています。

Mastodon API のプロトコルの読み方

RESTful な WebAPI の扱いに慣れていない方で、今回の「アカウント ID を得る」場合を例に Mastodon APIプロトコルの読み解き方(探し方)を説明したいと思います。他の情報を得たい場合などの参考にしてください。

まずは、Mastodon API の仕様書API METHODS から、「アカウント」に関する項目を探し、リクエスト先(叩く URL)を探します。

スクリーンショット 2017-12-11 2.05.42.png

上記からGET で HTTP リクエストすればカレント・ユーザー情報が得られる、つまり https://<your mastodon domain>/api/v1/accounts/verify_credentials を叩く/アクセスすると現在のユーザー情報が得られそうなのがわかります。

Returns the authenticated user's Account.

上記より、認証されたユーザーのアカウント情報が返ってくることがわかります。つまり HTTP リクエスト時にヘッダーに Authorization: Bearer で添えたアクセストークンの所有者(発行者)が、カレント・ユーザー(現在のユーザー)であることがわかります。逆に言えば、この API のエンドポイントを叩くにはアクセストークンが必須であることも読み取れます。

次に、リクエストのレスポンスで得られる情報(アクセスして返される情報)は「Account」であることがわかります。

次に Mastodn API の「Account」欄を見ると、この返されるデータはエンティティと呼ばれる JSON オブジェクトであることがわかります。つまり、HTTP ヘッダーに Content-Typeapplication/json が付いた文字列がレスポンスで戻ってくることがわかります。

この返されたデータ(Enitity of Account)のフォーマットと見ると、「id」の要素(項目)があるので、これを参照すれば、ユーザーの ID 番号が取得できます。

参考資料

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2