Slackにpythonからメッセージを送信する


概要

slackのapiをたたいてslackにpythonからメッセージを送信する。

やること

1. slackのワークスペースを作成

2. slack-appを作成

参考 (Slack API 推奨Tokenについて)

2-1. Slack apiにアクセスする。

2-2. install your app to your workspace

名前などを決めてappを作成する。

2-3. 権限の追加

OAuth PermissionsのScopesで以下の権限を追加する。
- chat:write :user (Send messages on the user’s behalf)

2-4. token取得

install Appの
「Bot User OAuth Access Token」を使用(botの発言)。
「OAuth Access Token」を使用すると個人の発言になる。

3. Slack Appをチャネルに追加する

  1. SlackからAppを選択
  2. その他 --> チャネルにこのアプリを連携させる --> チャネルを選択

4. python-apiを実装

import requests


class SlackDriver:

    def __init__(self, _token):
        self._token = _token  # api_token
        self._headers = {'Content-Type': 'application/json'}

    def send_message(self, message, channel):
        params = {"token": self._token, "channel": channel, "text": message}

        r = requests.post('https://slack.com/api/chat.postMessage',
                          headers=self._headers,
                          params=params)
        print("return ", r.json())


if __name__ == '__main__':
    token = ''  # TODO your token.
    slack = SlackDriver(token)
    slack.send_message("Hello World! from python", "#random")

tokenをセットする。

必要に応じてチャネル名、メッセージを変更する

参考

終わりに

python-slackclient というとても便利なライブラリがあるが、うまく使えなかった。sslがおかしいとか言われる...

これから

slackからのメッセージを受信できるようにしたい
SlackからPythonサーバーにメッセージを送信する