逆引きマニュアル: Slack: APIトークンを発行する方法

投稿日: 更新日:

やりたいこと

SlackのAPIトークンを手作業で発行する方法です。

概要

  1. アプリケーションを作る
  2. Redirect URLとScopeを登録
  3. 認可コードを取得
  4. アクセストークンを取得

3と4はDockerで簡単に動かせるものを作りました。

手順

  1. https://api.slack.com/apps に行く
  2. Create New Appを選択
  3. アプリケーション名と開発用のWorkspaceを選択
  4. App CredentialsにあるClient IDとClient Secretを控えておく
  5. OAuth 2.0の設定
    1. 左側のOAuth & Permissionsを選択
    2. Redirect URLを追加する。
      • http://localhost でも構わない。
      • Save URLsを押し忘れないこと。
    3. Scopesから、必要なスコープを追加する。
      • ユーザとして投稿したい場合は、Send message as user(chat:write:user)
      • Save Changesを押し忘れないこと。

認可コードの取得

  1. OAuth 2.0の認可エンドポイントにアクセス
    1. Using OAuth 2.0のStep 1のURLにアクセス
      • client_id, scope, redirect_uriが必須1。scopeは複数指定した場合はスペース区切り
  2. 認可を求める画面が出るので、「許可する」を押す。
  3. redirect_uriにリダイレクトする。
    • 認可コード(パラメータcode)を保存しておく。
    • 後ろにstateが付くが、これは不要。

アクセストークンの取得

  1. oauth.accessにアクセス。
    • 必須パラメータ: client_id, client_secret, code(認可コード)
  2. JSONで応答が返ってくる。
    • JSON中のaccess_tokenの値がアクセストークン。

制限事項


  1. redirect_uriはOptionalとなっているが、OAuth Error: redirect_uri did not match any configured URIs.となって使えなかった(ので必須だと判断した)。クライアントの種類によって使えない? ↩︎

マニュアル

  • Slack
  • oauth2: まだありません。