Slack

Slack API 推奨Tokenについて

はじめに

以前Slack APIのTokenの取得・場所という記事を書かせていただきました。
しかしながらこちらのトークンは以前は「Test Token」と表記されていたもので、今ではレガシーでかつ非推奨みたいですので、今回この記事を書かせていただきした。

推奨Tokenも5分くらいで作成できますので、こちらを使用することをおすすめします!
慣れたら作成は1分以内でできるようになります。
スコープの選定も基本はchat:write:botとかSend messages系が一番多いと思うのであまり迷わないと思います。

トークンの効力

Tokenの種類 捜査対象
レガシー ほとんどの機能が使える1つのTokenを発行
今回 必要な機能ごとのTokenを発行

英語できる方はドキュメントからどうぞ Using OAuth 2.0

Tokenについて

Token作成には以下の2種類があるかと思っています。

1. RedirectとResponseを利用した方法

パラメーターを付けたGETでアクセスして、返ってきたJSONにアクセスTokenがついてくるパターンの方法です。

今回は扱わないので、よくまとまっている上の記事などを参照されると理解しやすくなると思います。

2. GUIで作成する方法

今回はこちらを私が書いていきますので、最後までよろしくお願いします。

Tokenを作成する

アプリを作成してSlackにインストールすれば使えるようになりますので、その手順を書いていきます。

1. アプリ作成

まずはここにアクセスして、 https://api.slack.com/apps

クリックする / 入力する
1. Create New App
2. App Name
3. Development Slack Team
4. Create App

スクリーンショット 2017-06-14 11.01.04.png

2. スコープ設定

まずはスコープの設定をしないとアプリをインストールできません。
今回のサンプルではチャンネルにメッセージを投稿するだけのスコープだけ設定します。
どのスコープでどういうことができるかは今回取り扱いませんので、ドキュメントを参照ください。

  • permission scopeをクリック

スクリーンショット 2017-06-14 16.25.27.png

  • 必要なscopeを選択
  • 今回はSend messages as sample.

スクリーンショット 2017-06-14 16.28.57.png

3. Slackにアプリをインストール

ちゃんとScopeが設定されていると緑色になっている[Install App To Team]を押します。

スクリーンショット 2017-06-14 16.31.12.png

Team名を確認して間違いがなければ[Authorize]を押します。

スクリーンショット 2017-06-14 16.32.04.png

リダイレクトされた先にTokenが書かれていますのでこれを普通のTokenとして使ってください。

4. Tokenを探す

先のTokenを紛失したときの探し方。
https://api.slack.com/apps

アプリを選ぶ。
sampleをクリック

スクリーンショット 2017-06-14 16.35.27.png

[OAuth & Permissions]をクリック
[OAuth Access Token]をコピー

スクリーンショット 2017-06-14 16.36.20.png

5. Tokenが使えるかの実験

httpを叩いてみる

sampleのTokenですがこんな感じです。

https://slack.com/api/chat.postMessage?token=xoxo-xxx-xx-xx-xxxx&channel=bot-test&text=%22Hello%22

channelとTokenを変えると使えるはずです。

# 成功
{"ok":true,"channel":"xxxxx","ts":"xxxxx","message":{"text":"\"Hello\"","username":"sample","bot_id":"xxxxx","type":"message","subtype":"bot_message","ts":"xxxxx"}}
# 失敗
{"ok":false,"error":"token_revoked"}

残念な点

機能ごとにAppsが増えていく(Freeプランだと10個まで)
なのでレガシートークンの方の「Slack API Tester」だけ使いたくなりますね。

スクリーンショット 2017-06-14 12.16.58.png

管理場所はSlackの外部Apps(Integrations)の場所・管理を参考ください。

https://your_team_name.slack.com/apps/manage です。

最後に

簡単なのでレガシートークンから置き換えて、新しいほうのトークンを是非使ってください。
間違いとかあったらコメント欄で優しく指摘くださるか、こっそりプルリクくれると喜びますm(__)m

.