忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

Discord の OAuth2 を試す

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Discord の OAuth2 を試す

Discord の OAuth2 を使ってみようと思ったのでメモ。公式ドキュメント

Discord アプリケーションを作る

Discord の DEVELOP PORTAL から Discord アプリケーションを作り、CLIENT IDCLIENT SECRET を控える。

OAuth2 用の URL を生成する

OAuth2用の転送 URL を DEVELOP PORTAL を利用して作成する。

まず、先に作ったアプリケーションをDiscord の DEVELOP PORTAL より開き、OAuth2 を画面サブのメニューから選択。

REDIRECTS の入力欄に URL を記入する。

然る後に画面下部の OAUTH2 URL GENERATOR を使い、URL を作成する。SELECT REDIRECT URL から先に作った URL を選択したうえでその下の SCOPES を編集する。何を選んだらどうなるのかは OAuth2 Scopes 参照。

適当に SCOPES を設定したらその下に URL と Copy と書かれたボタンが並んでいるので Copy をクリックして転送 URL を取得する。この URL を控えておくこと。

「code」を取得する

先に取得した転送 URL にアクセスする。Discord へのログインを要求されるのでログインする (すでにログインしていたらされないかもしれない)。なんか尋ねられるので確認し、下部の認証をクリックする。OAuth2 用の URL を指定した時の URL に飛ばされるが、URL 末尾に ?code=XXXXX (XXXXX はランダムな文字列) とある。この XXXXX が「code」なのでこれを控える。これはアクセス token 取得の度に生成する必要がある。

アクセス token を取得する

discord サーバに対して post を送って取得する。ここでは curl してみる。

curl -X POST -H "Content-Type:application/x-www-form-urlencoded" \
-d "redirect_uri=${REDIRECTS の URL を JS の encodeURIComponent で encode したもの}&\
scope=${SCOPES の各項目を + で繋いだもの}&\
client_id=${先に控えた CLIENT ID}&\
client_secret=${先に控えた CLIENT SECRET}&\
grant_type=authorization_code&\
code=${先に控えた code}" \
https://discordapp.com/api/oauth2/token

妥当に実行できると以下のような返答が得られる。

{
  "access_token": "ランダムな文字列",
  "scope": "SCOPES の各項目を半角スペースで繋いだもの",
  "token_type": "Bearer",
  "expires_in": 604800,
  "refresh_token": "ランダムな文字列"
}

情報を取得してみる

自分の情報を取得

とりあえず自分が誰なのか取得してみる。

curl -H "Authorization: Bearer ${先に取得した access_token}" \
https://discordapp.com/api/users/@me

自分の入っているサーバ一覧を取得

作ったアプリを特定のサーバにいる人だけに利用させたい場合なんかに使えそう

curl -H "Authorization: Bearer ${先に取得した access_token}" \
https://discordapp.com/api/users/@me/guilds

もっといろいろやる?

もっといろいろやる方法を調べる

DEVELOPER PORTAL の RESOURCES 以下にいろいろ書いてある。

できることは限られている

認可のための機能なのでこれで得た token でメッセージの投稿とかはできない。

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R