メンバーの管理と関連付け
メンバーに専用なアイデンティティを割り当てて, これを Discord サーバーへの参加状態と同期させます. そして, メンバーの認証情報それぞれに対する SNS アカウント情報などを関連付けます.
API とは別に登録処理用の簡易的な画面を /
(ルート) で用意しています. これにより OAuth 2.0 のフローを用いて, Discord の OAuth API 経由で Discord に関連付けてあるアカウント情報 (GitHub と X のみ) を自動登録できます.
以下の HTTP API エンドポイントを設けています. エンドポイントのスキーマは OpenAPI として openapi.yaml にも記述してあります. 開発の際にはぜひご利用ください.
以下のエンドポイントはいずれも JSON オブジェクトを返します. スキーマの詳細は openapi.yaml を確認してください.
GET /members
は全てのメンバーの情報のリストを取得できます.
GET /members/{id}
は特定のメンバーのみの情報 1 件を取得できます. 存在しない場合は 404 Not Found
を返します.
GET /members/{id}/associations
は特定のメンバーに関連付けられたアカウント情報のリストを取得します.
以下のエンドポイントは, ヘッダーに Authorization: Bearer <oauth-token>
の形式の認証情報が必要です. この <oauth-token>
は Discord の OAuth トークンであり, これには identify
と guilds.members.read
の scope が付与されている必要があります.
PUT /members/{id}/associations
は特定のメンバーに関連付けられたアカウント情報を, リクエスト本文のリストで上書きします. スキーマの詳細は openapi.yaml を確認してください.
DELETE /members/{id}/associations
は特定のメンバーに関連付けられたアカウント情報をすべて削除します.
フレームワークとして Hono, データベースとして Cloudflare R2 を使用しています.