概要
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をチャネルに追加する
- 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をセットする。
必要に応じてチャネル名、メッセージを変更する
参考
- 必要な Slack API はどれ?
- Slack API 推奨Tokenについて
- chat.postMessage api (機能を追加するならよく読む)
- Slack api
- https://github.com/st34-satoshi/slack-api
終わりに
python-slackclient というとても便利なライブラリがあるが、うまく使えなかった。sslがおかしいとか言われる...
これから
slackからのメッセージを受信できるようにしたい
SlackからPythonサーバーにメッセージを送信する