2018年9月9日日曜日

Python スクリプトから IIJmio クーポンスイッチを操作する (3)

前回からの続きでクーポンスイッチの切り替えはできたので、切り替えたときは 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)