9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SlackAPIを使うために必要な準備

Posted at

 はじめに

本文書は、SlackAPIを使うために必要な準備をまとめることを目的としています。

 SlackAPIとは

他のアプリケーションでのAPIと同様に外部アプリケーションからSlackを操作するための仕組みです。
公式資料はこちらです。
本文書では、上記資料のWeb APIを利用する際に必要な準備をまとめます。

 準備

公式資料にも書かれていますが、SlackAPIの利用には以下が必要です。

  • SlackAppの作成
  • SlackAppをインストールすることで生成されるアクセストークンの取得

次節以降で上記準備の手順をそれぞれまとめていきます。

 SlackAppの作成

こちらのSlack公式の文書を元に、SlackAppを作成する手順を説明します。

  • こちらにアクセスして[Create Slack App]ボタンを押す。
  • アプリ名と対象のワークスペースを選択する。

以上でSlackAppの作成は完了です。

 SlackAppをインストールすることで生成されるアクセストークンの取得

SlackAppには以下の2つのインストール方法があります。
インストール方法によってアクセストークンの取得方法も違うので、それぞれのインストールとアクセストークンの取得方法を説明していきます。
なお。「OAuth2.0のバージョン2の仕組みでインストール」はSlackとは別のWebアプリケーション上からSlackAppをインストールしたい場合に主に使われます。

  • Web上でインストール

  • OAuth2.0のバージョン2の仕組みでインストール

 Web上でインストール

こちらのSlack公式の文書を元に、Web上でインストールする手順をまとめます。

  • こちらにアクセスし、作成したアプリを選択する。
  • [OAuth&Permisstions]ページでScopeタブを選択し、スコープを追加する。(スコープについては、補足情報で説明しています。)

ScopesAdd.png

  • [OAuth&Permisstions]ページの画面上部のInstall To WorkSpaceボタンをクリック。

InstallToWorkspace.png

アクセストークンは以下の手順で取得できます。

  • [OAuth&Permisstions]ページのTokens for Your Workspaceの部分にアクセストークンが表示される。

GetAccessToken.png

 OAuth2.0のバージョン2の仕組みでインストール

こちらのSlack公式の文書を元に、以下に手順をまとめます。  

  • こちらにアクセスし、作成したアプリを選択する。  
  • [OAuth&Permisstions]ページでScopeタブを選択し、スコープを追加する。
  • [OAuth&Permisstions]ページのRedirect URLsにリダイレクト用URL(以後リダイレクトURLと呼ぶ)を追加する。(リダイレクトURLで指定するページの振る舞いは、後述する。)

SetRedirectURLs.png
 

  • [Basic Information]ページで以下の情報を記録し、後から参照できるようにしておく。
    • Client ID (以後クライアントIDと呼ぶ)
    • Client Secret (以後クライアントシークレットと呼ぶ)

GetClientSecret.png

  • Webブラウザで以下のURLに移動する。client_idにはクライアントIDが、redirect_urlはリダイレクトURLが入る。scopeはSlack側で設定したスコープと同じものを設定する。(以下はusers:readとchannels:readスコープを設定する場合の例)
  • リダイレクトしたのちにアプリをインストールするかどうかを促す画面がWebブラウザで表示されるので、許可ボタンを押下する。

oauthImage.png

  • 許可ボタンを押すと、リダイレクトURLに、「code」がクエリパラメータとしてリダイレクトされる。具体的には以下のようなURLにリダイレクトされる。
  • リダイレクトURLで指定するWebページは、以下の振る舞いを示すようにしておく。
    • 「code」パラメータの値を解釈して、ブラウザ上に「code」(以後認可コードと呼ぶ)の内容を表示する。
  • 上記で取得した認可コードを使って、以下のURLにPOSTリクエストを発行する。(codeには認可コード、client_idにはクライアントID、redirect_urlにはリダイレクトURL、client_secretにはクライアントシークレットを入れる)
  • 上記POSTリクエストのレスポンスがOKで返ってこれば、インストール完了。そしてレスポンスのtokenタグの値がアクセストークンです。

 補足情報

 スコープ

公式文書はこちらです。スコープとは、SlackAppができる権限を示すものです。つまり、スコープによってSlackAppでできることが制限されています。
例えばusers:readスコープを追加すると、API経由でユーザー情報を読み取ることができるようになります。必要最低限のスコープにすることでAPI経由での不正な操作を防ぐことができるので、スコープの設定は重要になります。スコープの一覧はこちらです。
利用するAPIメソッド毎に必要なスコープが決まっており、リファレンスにも記載されているので、使いたいAPIベースでスコープを設定すれば、APIを利用するうえでは困らないと思います。
以下はチャンネルのメッセージ履歴を取得するAPIのリファレンス(リンクはこちら)のスコープについて書かれた部分です。このようにAPI毎に必要なスコープが定義されています。なお、TokenTypeについてはこちらの記事を参照ください。

APIReference.png

 まとめ

SlackAPIを利用するうえで必要な準備をまとめました。「OAuth2.0のバージョン2の仕組みでのインストール」は、別アプリケーションからSlackAppをインストールするために用意されているようなので、手軽にAPIを試したい場合には、「Web上でインストール」をお勧めします。
API利用時には、本稿で取得したアクセストークンを使います。実際にどのように使うのかは別途記事にして投稿する予定です。

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?