はじめに
SLACKのアクセストークンを取得する方法は2種類あります。
- GUIで取得
- http GETリクエストで取得
レガシートークン(非推奨)というモノも存在します。
パニックです。
GUIで取得の方法をまとめました。
ご参考になれば、うれしいです。
http GETリクエストで取得する方法
こちらの記事に書きました。
もしよろしければ。
※ GUIで取得の方が簡単です。
レガシートークンについて
レガシートークンは現在非推奨とされているため扱いません。
もともとはレガシートークンだけしか存在しなかったのですが、ほぼ全ての権限をもつ(rootユーザーのような感じ)レガシートークンはセキュリティ的に良くないよねということで現在の必要な権限のみ付与する仕組みに変わったようです。
非推奨ですが使うことはできます。(2019/03現在)
前提
SLACKのワークスペース(チーム)があること。
手順
【STEP1】 アプリを作成
アプリに対してアクセストークンが付与されるので、まずは作ります。
- https://api.slack.com/apps にアクセス
- Create an App
- お好きなアプリ名を入力
- アプリをインストールするワークスペースを選択
- Create an App
**■ 作成完了 ■** ![スクリーンショット 2019-03-29 18.06.09.png](https://qiita-image-store.s3.amazonaws.com/0/287998/8150b1be-e7df-f3bd-9759-6bb2917f0a5a.png)
**■ やり直したい時は ■** サイドメニューBasic Information ![スクリーンショット 2019-03-29 20.26.56.png](https://qiita-image-store.s3.amazonaws.com/0/287998/34586b6d-4abe-4218-e751-e66182c43d52.png)
↑↑↑↑↑ ここまでは[http GETリクエストで取得](https://qiita.com/_komiya/items/3cbaecea9ab979bc040a)と共通の手順になります ↑↑↑↑↑
### 【STEP2】 スコープを設定
Select Permission Scopesのプルダウンから必要なスコープを追加 → Save Changes
例えば channels.history
と channels.info
というメソッドを使いたいときは channels:history
と channels:read
というスコープを追加します。
下に スコープ一覧↓ 載せました。
### 【STEP3】 アプリをインストール ![スクリーンショット 2019-03-29 20.59.25.png](https://qiita-image-store.s3.amazonaws.com/0/287998/c18d2c45-f6b4-79a9-511f-9573ffb88cb5.png)
**■ アクセストークンの場所 ■** ![スクリーンショット 2019-03-29 21.36.48.png](https://qiita-image-store.s3.amazonaws.com/0/287998/3f82b642-3e80-7749-5c61-ce5b1d03cb68.png)
### 【STEP4】 取得したトークンをテストする ブラウザのURL欄に ``` https://〜 ``` を入力してください。 ※curlコマンドでリクエストをなげてもOKです。
https://slack.com/api/channels.history?token=xoxp-228897819378-228958135940-590632179824-683ca3e9c7c4ae435bc2ac65443b3bec&channel=C6QSDQ4P4
↓↓↓ 上記パラメータには以下の値が入っています。
https://slack.com/api/付与したスコープで利用できるメソッド名?token=アクセストークン&channel=チーム内に存在するチャンネルのID
URLのパラメータに何をわたせばいいか、返却値として何が返ってくるのかなどはScopes and permissionsから調べられます。
ちなみにSLACK apiにわたすchennel=の値はチャンネル名ではなく、チャンネルIDである必要があります。
(上記例での channel=C6QSDQ4P4
の部分です。)
下に確認方法を記載しました。チャンネルIDの確認方法↓
### 【STEP5】 トークンテストの結果
■ 成功 ■
"ok" キーの値がtrueとなります。
{"ok":true,"messages":[{"user": ・ ・ ・ ・ ・ ・ ・}
■ 失敗 ■
"ok" キーの値がfalseとなります。
{"ok":false,"error":"channel_not_found"}
**アクセストークンの取得手順は以上となります。**
## チャンネルIDの確認方法(参考)
SLACK上でチャンネルを選択した状態でURL欄から確認できます。
## スコープ一覧(参考) [https://api.slack.com/docs/oauth-scopes](https://api.slack.com/docs/oauth-scopes)より
OAuth Scope | Associated Methods |
---|---|
channels:history |
|
channels:read |
|
channels:write |
|
chat:write:bot |
|
chat:write:user |
|
dnd:read |
|
dnd:write |
|
dnd:write:user |
|
emoji:read |
|
files:read |
|
files:write:user |
|
groups:history |
|
groups:read |
|
groups:write |
|
identity.basic |
|
identity.basic:user |
|
im:history |
|
im:read |
|
im:write |
|
links:write |
|
mpim:history |
|
mpim:read |
|
mpim:write |
|
pins:read |
|
pins:write |
|
reactions:read |
|
reactions:write |
|
reminders:read |
|
reminders:read:user |
|
reminders:write |
|
reminders:write:user |
|
search:read |
|
stars:read |
|
stars:write |
|
team:read |
|
tokens.basic |
|
usergroups:read |
|
usergroups:write |
|
users.profile:read |
|
users.profile:write |
|
users.profile:write:user |
|
users:read |
|
users:read.email |
|
users:write |
|