Misskey MiAuthの使い方
※MiAuthが安定して動作するのはMisskey 12.39.1からです。それ以前は従来のMisskeyの認証方法を使うことをお勧めします。
1. URLを作る
MiAuthで認証するためのURLを作ります。
セッションIDを定義する必要があり、UUID(v4推奨)で定義することが推奨されています。
そのセッションIDは一時的に控えておきます。
クエリは全てオプションですが、少なくともアプリケーション名(name)、権限(permission)をつけることを推奨します。コールバックする必要があればコールバックURL(callback)を定義します。
table:権限一覧(v12.47.1 現在)
key 説明
read:account アカウント情報の読み取り
write:account アカウント情報の変更
read:blocks ブロックしているアカウント一覧の読み取り
write:blocks ブロックしているアカウントの読み書き
read:drive ドライブの閲覧
write:drive ドライブの書き込み
read:favorites お気に入りの閲覧
write:favorites お気に入りの書き込み
read:following フォロー一覧の読み取り
write:following フォロー、フォロー解除
read:messaging トークの読み取り
write:messaging トークの書き込み
read:mutes ミュートしているアカウントの読み取り
write:mutes ミューとしているアカウントの読み書き
read:notifications 通知の読み取り
write:notifications 通知の既読処理など
read:reactions リアクションの読み取り
write:reactions リアクションの書き込み
write:votes 投票
read:pages ページを見る
write:pages ページの書き込み
read:page-likes いいねしたページの閲覧
write:page-likes ページのいいねを操作
read:user-groups ユーザーグループを閲覧
write:user-groups ユーザーグループを書き込み
read:channels チャンネルを閲覧
write:channels チャンネルを書き込み
この権限一覧はアップデートにより追加や削除される場合がありますので、各MisskeyインスタンスのAPIドキュメントを参照してみて下さい。
権限を複数指定する場合はカンマで区切ります。
code:example-permissions-split
read:account,write:notes
URLを作成したら使用者にそのURLにアクセスさせます。
code:example-url
# このURLは一例です。使用しないようにして下さい。
2. 認証
MiAuthで使用者の認可がとれたら以下のAPIを送信します。メソッドはPOSTです。
code:example-auth-api
# このURLは一例です。使用しないようにして下さい。
以下の結果が返ります。
code:authorized.json
{
"ok": true,
"token": "...",
"user": { ... }
}
okには認証結果が返ります。okがfalseの場合は、tokenやuserは結果に含まれません。
okがtrueである場合、結果は一度のみしか返りません。
userには認証したユーザーの情報がオブジェクトで格納されています。内容が多いため中身は割愛します(/api/iと同じ内容だと思われます)。
tokenを控えます。その控えたtokenを各MisskeyのAPIで使用することができます。