[Slack×Python]高度版:Part2 PythonでSlackにメッセージ送信!
効率的なコミュニケーションとワークフローの自動化を実現する強力なツール、それがSlack apiです。
カスタム統合、アプリ開発、リアルタイムデータの取得が可能で、各々のユースケースに応じた生産性を高めます!!
はじめに
前回はSlackアプリの準備の一連のフローを解説しました。
今回はいよいよ、前回作成したSlackアプリを用いて、指定したチャンネルへ通知を送信する方法を解説していきます。
チャンネルへのSlackアプリの追加
チャンネルにSlackアプリを追加します。チャンネル名の右クリックチャンネル詳細を開く → インテグレーション → アプリを追加でSlackアプリを追加。
※アプリを作成してから、SlackのWorkspaceへの反映まで少し時間がかかることがあるため、アプリを追加に無いときは少し時間を置いてください。
chat.postMessageの動作確認
chat.postMessageは、メッセージを送信するAPIです。
ひとまず、Slackのテスターサイトで動作確認を行います。
このような画面に飛ぶので、Or, provide your own token:に前回作成したトークンを貼ります。その次に、メッセージを送りたいチャンネルのチャンネルIDを取得します。
そしてリンクの下部にあるtextに送りたいテキストを入力します。
今回はBot Token Scopesを選択しているので、設定したアプリの名前でメッセージが送信されていることを確認してください。
アプリの名前、送信したチャンネル、受信したテキストがそれぞれの設定通りであれば成功です。
Pythonによるメッセージ送信
こうしたプロセスを経て、やっと今回の主題に入ります。と、言ってもここまでが大変だっただけに、コード自体はxoxb-以下を自分のトークンに置き換え、チャンネルID、送信したいテキストを変えるだけと至ってシンプルで、
def send_message_to_slack(CHANNEL, TEXT):
TOKEN = "xoxb-ここに残りのトークンを入力"
url = "https://slack.com/api/chat.postMessage"
headers = {"Authorization": "Bearer " + TOKEN}
data = {"channel": CHANNEL, "text": TEXT}
r = requests.post(url, headers=headers, data=data)
send_message_to_slack('ここにチャンネルID', 'ここに送信したいテキスト')
この関数を実行すると、設定したチャンネルID、テキストに基づいてメッセージが送信されます。
終わりに
長々とお付き合いありがとうございます!
今回のchat.postMessageを使ったメッセージ送信では、初期の設定こそめんどくさいものの、一度設定したらカスタマイズ性も高く、使い勝手の良いものとなってます。 chat.postMessageを使いこなして良きエンジニアライフを!