Webブラウザ1つで試せるMastodon API

github.com

以前に私はマストドンのローカルタイムラインを切る取る「mstdn-picker」というものを作った。 これはローカルタイムライン上にある2つのトゥートを指定すると、その間にあるトゥートをパーマリンク形式として保存できるようなもの。 イメージとしてはTwitterの「Together」をイメージしてもらえるとわかりやすい。ただ、「Together」は任意のツイートを自由に選択できるのに対して、「mstdn-picker」は2点間のトゥートという制限がある。任意に選択できるようにしてもよかったが、サーバーサイドのプログラムを構築する面倒くささがあって、結果、クライアントサイドのJava Script/HTML/CSSだけで完結できるようにした。

前置きが長くなりましたが、この「mstdn-picker」を作って得たMastodon APIのことを以降にざっとまとめる。

Mastodon APIのドキュメント

Mastodon APIについて知りたければ、以下のページを見ればほぼすべてわかる。(ほんとこのページだけあれば十分な感じ)

github.com

Webブラウザ1つで試せるMastodon API

まぁでもこういう英語のAPIドキュメントを日本人が初見で使いこなすのはちょっとしたなれが必要なので、ここではWebブラウザ1つで試せるMastodon APIを紹介する。 ここで私がいう「Webブラウザ1つで試せる」とは、

  • GET送信である
  • ユーザー認証が必要ない
  • プログラムのコードを書く必要ない
  • Webブラウザのアドレスバーに入力するだけでOK

とする。「ユーザー認証が必要ない」というだけあって試せるAPIは少ししかない。上記のMastodon APIのドキュメント内で「Does not require authentication.」を検索するとどれが使えるかわかる。

1) ユーザーアカウントの情報を取得する

マストドンのアカウントそれぞれには一意のID(数値)が割り当てられている。 私のグルドンのアカウントは以下のように「1073」という数字が割り当てられている。

f:id:rbtnn:20190414224553p:plain

このIDはどうも作成順で連番らしく、IDの「1」はグルドンの管理者であるdrikinさん、「2」は相方のmazzoさんである(わかりやすいw)。 では、このID(数値)を使ってユーザーアカウントの情報を取得しよう。 使用するAPIは以下のものになる。

GET /api/v1/accounts/:id

これをWebブラウザから試すには

https://mstdn.guru/api/v1/accounts/1073

のように「:id」の部分をIDの数値に、そして先頭に該当のマストドンインスタンスのURLをつければOK。

f:id:rbtnn:20190414230204p:plain

このAPIを叩くと該当のアカウントの情報が得られる。例えば、

  • "created_at" : "2017-04-20T03:04:58.820Z" → アカウントを作成した日付
  • "followers_count" : 87 → フォワー数
  • "following_count" : 22 → フォロー数
  • "statuses_count" : 1757 → トゥートした数

など。APIドキュメント上では「toot」と「status」という単語はほぼ同じ意味で使われていることがわかる。

2) インスタンスに登録されているカスタム絵文字を取得する

使用するAPIは以下のものになる。

GET /api/v1/custom_emojis

https://mstdn.guru/api/v1/custom_emojis

となる。試すと...

f:id:rbtnn:20190414232404p:plain

ぱっとみわかりにくいが、よくよくみるとカスタム絵文字それぞれの画像URLが取得できていることがわかる、便利。

3) トゥートの情報を取得する

アカウントに一意のID(数値)が割り振られていたようにトゥートにも一意のID(数値)が割り振られている。これも連番である。

GET /api/v1/statuses/:id

もう説明は割愛するが、「:id」が「1」は

f:id:rbtnn:20190414233431p:plain

とそのインスタンスの最初のトゥートが得られる。

ちなみにそのURLの後ろに「/favourited_by」をつけると誰がお気に入りしたかも取得できたりする。