やりたいこと
SlackのAPIトークンを手作業で発行する方法です。
概要
- アプリケーションを作る
- Redirect URLとScopeを登録
- 認可コードを取得
- アクセストークンを取得
3と4はDockerで簡単に動かせるものを作りました。
手順
- https://api.slack.com/apps に行く
Create New App
を選択- アプリケーション名と開発用のWorkspaceを選択
- App CredentialsにあるClient IDとClient Secretを控えておく
- OAuth 2.0の設定
- 左側の
OAuth & Permissions
を選択 - Redirect URLを追加する。
http://localhost
でも構わない。Save URLs
を押し忘れないこと。
- Scopesから、必要なスコープを追加する。
- ユーザとして投稿したい場合は、Send message as user(
chat:write:user
) Save Changes
を押し忘れないこと。
- ユーザとして投稿したい場合は、Send message as user(
- 左側の
認可コードの取得
- OAuth 2.0の認可エンドポイントにアクセス
- Using OAuth 2.0のStep 1のURLにアクセス
- client_id, scope, redirect_uriが必須1。scopeは複数指定した場合はスペース区切り
- Using OAuth 2.0のStep 1のURLにアクセス
- 認可を求める画面が出るので、「許可する」を押す。
- redirect_uriにリダイレクトする。
- 認可コード(パラメータ
code
)を保存しておく。 - 後ろに
state
が付くが、これは不要。
- 認可コード(パラメータ
アクセストークンの取得
- oauth.accessにアクセス。
- 必須パラメータ:
client_id
,client_secret
,code
(認可コード)
- 必須パラメータ:
- JSONで応答が返ってくる。
- JSON中の
access_token
の値がアクセストークン。
- JSON中の
制限事項
-
redirect_uriはOptionalとなっているが、
OAuth Error: redirect_uri did not match any configured URIs.
となって使えなかった(ので必須だと判断した)。クライアントの種類によって使えない? ↩︎
マニュアル
- Slack
- oauth2: まだありません。