Skip to content

approvers/members-assoc

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Apr 27, 2024
Aug 17, 2023
Oct 6, 2024
Aug 16, 2023
Aug 16, 2023
Aug 16, 2023
Aug 19, 2023
Aug 21, 2023
Apr 13, 2024
Aug 21, 2023
Nov 2, 2024
Nov 9, 2024
Apr 28, 2024
Aug 16, 2023

Repository files navigation

members-assoc

メンバーの管理と関連付け

コンセプト

メンバーに専用なアイデンティティを割り当てて, これを 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 トークンであり, これには identifyguilds.members.read の scope が付与されている必要があります.

PUT /members/{id}/associations は特定のメンバーに関連付けられたアカウント情報を, リクエスト本文のリストで上書きします. スキーマの詳細は openapi.yaml を確認してください.

DELETE /members/{id}/associations は特定のメンバーに関連付けられたアカウント情報をすべて削除します.

構築基盤

フレームワークとして Hono, データベースとして Cloudflare R2 を使用しています.