[Slack×Python]高度版:Part2 PythonでSlackにメッセージ送信!

a small white cup with a pink and blue design on it

効率的なコミュニケーションとワークフローの自動化を実現する強力なツール、それがSlack apiです。 カスタム統合、アプリ開発、リアルタイムデータの取得が可能で、各々のユースケースに応じた生産性を高めます!!

目次

はじめに

前回はSlackアプリの準備の一連のフローを解説しました。

[blogcard url=”https://blog.since2020.jp/uncategorized/slackxpython%e9%ab%98%e5%ba%a6%e7%89%88%ef%bc%9apart1-python%e3%81%a7slack%e3%81%ab%e3%83%a1%e3%83%83%e3%82%bb%e3%83%bc%e3%82%b8%e9%80%81%e4%bf%a1%ef%bc%81/”]

今回はいよいよ、前回作成したSlackアプリを用いて、指定したチャンネルへ通知を送信する方法を解説していきます。

チャンネルへのSlackアプリの追加

チャンネルにSlackアプリを追加します。チャンネル名の右クリックチャンネル詳細を開く → インテグレーション → アプリを追加でSlackアプリを追加。

※アプリを作成してから、SlackのWorkspaceへの反映まで少し時間がかかることがあるため、アプリを追加に無いときは少し時間を置いてください

chat.postMessageの動作確認

chat.postMessageは、メッセージを送信するAPIです。

ひとまず、Slackのテスターサイトで動作確認を行います。

[blogcard url=”https://api.slack.com/methods/chat.postMessage/test”]

このような画面に飛ぶので、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を使いこなして良きエンジニアライフを!

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次