ユーザーID番号が知りたい
マストドンの API で、ユーザー ID を使って、ちょっと試したいのでユーザーのID 番号が知りたい。つまり、
@hoge
でなく数値の方の ID の確認・取得方法。
一番簡単な方法
Mastodon 上でアカウントのアイコンをクリックした時の URL に記載されているのが ID。
- マストドンの Web 上から「ホーム」や「ローカル」のタイムラインで、対象となる(IDを知りたい)アカウントのトゥートを探す(自分の ID だったら自分のトゥート)
- カウントのアイコンをクリック
- URLの末尾のの数値(
https://<ドメイン>/web/account/xxxxx
の場合xxxxx
)
API で自分のアカウント ID の ID 番号を確認する方法
- メソッド:
GET
- ホスト: Mastodon サーバ(インスタンス)のドメイン名
- エンドポイント:
/api/v1/accounts/verify_credentials
- アクセストークン: 必須 (要
Authorization: Bearer
HTTP ヘッダ)
$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)を探します。
上記から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-Type
が application/json
が付いた文字列がレスポンスで戻ってくることがわかります。
この返されたデータ(Enitity of Account)のフォーマットと見ると、「id
」の要素(項目)があるので、これを参照すれば、ユーザーの ID 番号が取得できます。