14
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-10-23

概要

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

やること

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

#2. slack-appを作成
参考 ([Slack API 推奨Tokenについて] (https://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21))
##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を選択
  • その他 --> チャネルにこのアプリを連携させる --> チャネルを選択

#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サーバーにメッセージを送信する

14
24
2

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
14
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?