Slackにメッセージを送信するPythonスクリプト(2021.7.4)

Summary

Slackに自動で定期的にレポートを送信したい。
機械学習が完了または異常終了したらメッセージで知らせてほしい。
実験コード中にメッセージフックを書いておけば送信できるようにしたい

2018年にSlack APIの仕様が変わったらしく、webの情報が古いものがある。

手順

  1. ボットを設置したいSlack Workspaceとそのchannelを作成する
  2. https://api.slack.com/にWorkspaceのアカウントでログイン
  3. https://api.slack.com/appsで「Create New App」
  4. tokenの生成(メモしておく)やmanifestoの設定(users.readも設定)をしておく
  5. Slack Workspaceを指定してAppをインストール
  6. users.list TesterでWorkspaceの登録ユーザ一覧をjson形式で取得
  7. chat.postMessage Testerでメッセージ送信の確認(mentionには<@ユーザid>を使う
  8. tokenの再発行や設定の追加は「OAuth & Permissions」の「scopes」などから行う
  9. pythonからメッセージを送る

Slack Workspaceを指定してbotを作成・登録

Basic app setupを参照