#やったこと
Slack APIを使ってみたかったので,Appの作成プロセスを最初からまとめておく.
###コンテンツ
- Slack Appを任意のワークスペースにインストール.
- Python3でSlack APIを使ってbotを動かせるようにする.
#参考資料
https://api.slack.com/start/overview
https://api.slack.com/start/building
https://slack.dev/python-slackclient/index.html
https://github.com/slackapi/python-slackclient
#環境
MacOS Mojave 10.14.5
Python3.7
slackclient 2.0.1
#Appの作成
このURLで作成したいApp名とワークスペースを指定.
新規Appが作成される.
Building Apps for SlackでAppの機能を以下から選択&設定(複数選択可).
- Incoming Webhooks: 外部のアプリケーションからSlackへメッセージを送る
- Slash commands: /でユーザがアプリを起動できるようにする
- Bots: Appとのインタラクティブなやりとりを可能にするボットを追加する
- Interactive Components: Appにボタンを追加してインタラクティブな操作を可能にする
- Event Subscriptions: ユーザからの入力などに対して反応するようにする
- Permissions: AppがAPIを使用するための権限設定
解釈があってるかわからないけれど,こんな感じ.今回はPermissionsの設定をする.
#Scopeの設定
PermissionsでScopeの設定を行う.Scopeの設定でAppのワークスペース内でのアクセス権限を設定する.
今回は以下を選択
- Send messages as test: 動作確認で使用
#ワークスペースにAppをインストール
Install App to WorkspaceでAppをワークスペースにインストール.
インストール後,OAuth Access Tokenが発行される.APIを使用するときに必要になる.
#Python SDKのインストール
ターミナルからは以下のコマンド
pip install slackclient
githubから取ってくる場合は以下
git clone https://github.com/slackapi/python-slackclient.git
pip install -r requirements.txt
#Hello World
環境変数SLACK_API_TOKENにさっきのOAuth Access Tokenを設定
$ export SLACK_API_TOKEN='OAuth Access Token'
githubのリポジトリのREADME.mdに書かれてるコードで動作確認.
import os
import slack
client = slack.WebClient(token=os.environ['SLACK_API_TOKEN'])
response = client.chat_postMessage(
channel='#random',
text="Hello world!")
assert response["ok"]
assert response["message"]["text"] == "Hello world!"
#randomチャンネルにHello world!と表示される.