LoginSignup
17

More than 3 years have passed since last update.

Python3でSlack APIを使用してBotを作成

Last updated at Posted at 2019-06-08

やったこと

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!と表示される.

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
17