Help us understand the problem. What is going on with this article?

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

やったこと

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした