やりたいこと
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: まだありません。