前回からの続きでクーポンスイッチの切り替えはできたので、切り替えたときは Slack にメッセージを投稿して切り替えたことを通知したいと思います。メッセージを投稿するだけならこれまで散々使っている slackbot ライブラリを使えば簡単にできるのですが、せっかくなので WebAPI を直接たたいてみたいと思いました。
chat.postMessage method | Slack API
https://api.slack.com/methods/chat.postMessage
API の説明ページを読みながらスクリプトを組んでみたけど、なかなかうまく動かない。結局ググってしまった…。
PythonでSlackのWebAPIを使ってメッセージを送る(JSONベース)
https://qiita.com/saba1024/items/7193f8f5c45835ccad02
参考にしてスクリプトを組んでメッセージを投稿するとこんな感じで Slack から見えます。
意外と面倒なので slackbot ライブラリで良いかも。と思いました。後は 2 つのスクリプトを合体させて、cron で決まった時間にスイッチ ON/OFF させれば良さそう。
#coding: utf-8
import urllib.request
import urllib.parse
import json
chat_url = 'https://slack.com/api/chat.postMessage'
headers = {
'Authorization' : 'Bearer <ここにSlackのトークン>',
'Content-Type' : 'application/json; charset=utf-8',
}
message_params = {
'channel' : '#general',
'text' : 'クーポンをOÑにしました',
'username' : 'IIJmio'
}
data = json.dumps(message_params).encode("utf-8")
req = urllib.request.Request(chat_url)
req.data = data
req.headers = headers
req.method = 'POST'
res = urllib.request.urlopen(req)
body = res.read()
print(body)