2019年3月7日木曜日

IIJmio トークンを更新する

なんか最近通信が遅いと思ったらクーポンのON/OFFスイッチを自動的に切り替える Python スクリプトがうまく動いていませんでした。
前回のトークン更新が去年の 12/2 でどうやらトークンの期限(2019/3/2)で切れていたみたいです。あれからもう 90 日も経ったのか…。トークンを更新すればこの話は終わりですが、トークンの期限が近くなったら追加でメッセージを表示するように機能を追加しようと思います。

まずは新しいトークンと一緒に期限の日時も定義します。
# 発行日 2019.3.3 -> 2019.6.1
iijmio_token = "hogehogetoken"
iijmio_token_limit = "20190601"
スクリプト実行時間と比較して残り 1 週間を切っていたら追加でメッセージを表示します。
# 期限の日時 文字列から datetime 型に
dt_token_limit = datetime.datetime.strptime(mytokens.iijmio_token_limit, '%Y%m%d')
# 現在の日時
dt_now = datetime.datetime.now()
# アラートは期限切れ1週間前から
dt_alert = datetime.timedelta(days=7)
# それぞれ UNIXTIME に変換
ut_now = dt_now.timestamp()
ut_token_limit = dt_token_limit.timestamp()
ut_alert_limit = (dt_token_limit - dt_alert).timestamp()

if ut_token_limit < ut_now:
    # 期限切れ
    message = "トークンの期限が切れています。"
    slack.chat.post_message("general",message,username="IIJmio", icon_emoji=":slack:")
elif ut_alert_limit < ut_now:
    # 警告
    message = "トークンの期限が近づいています。: {}".format(mytokens.iijmio_token_limit)
    slack.chat.post_message("general",message,username="IIJmio", icon_emoji=":slack:")

これで期限が近付いていることに気づけるかな。