はじめに
slackへのメッセージの送受信についての備忘録です。
任意の画像を送信する方法についても記しておきます。
slackのトークン取得については省略します。
pythonからslackにメッセージを送る
import reauests
def send_message_to_slack(CHANNEL, TEXT):
TOKEN = "xxxxxx" # slackのトークン
url = "https://slack.com/api/chat.postMessage"
headers = {"Authorization": "Bearer " + TOKEN}
data = {"channel": CHANNEL, "text": TEXT}
r = requests.post(url, headers=headers, data=data)
pythonからslackにメッセージを送るコードです。
変数の説明は下記のとおりです。
-
CHANNEL
:送付先のチャンネル名 -
TEXT
:送付したい内容
slackのメッセージをpythonで受け取る
import reauests
def get_new_message_from_slack(CHANNEL_URL):
TOKEN = "xxxxxx" # slackのトークン
url = "https://slack.com/api/conversations.history"
payload = {"channel": CHANNEL_URL, "oldest": "1661313953"}
headersAuth = {
"Authorization": "Bearer " + str(TOKEN),
}
response = requests.get(url, headers=headersAuth, params=payload)
json_data = response.json()
msgs = json_data["messages"]
return msgs
slackのメッセージをpythonに送るコードです。
変数の説明は下記のとおりです。
-
CHANNEL_URL
:取得先のチャンネルURL -
msg
:取得した内容
最新のメッセージがほしい場合はmsg[0]["text"]
で取得できます。
筆者はこの関数をwhile文でループさせています。
pythonからslackに画像を送る
import reauests
def upload_images_to_slack(p_img, CHANNEL):
TOKEN = "xxxxxx" # slackのトークン
files = {"file": open(p_img, "rb")}
param = {
"token": TOKEN,
"channels": CHANNEL,
"filename": "filename",
"initial_comment": "initial comment",
"title": "title",
}
requests.post(url="https://slack.com/api/files.upload", data=param, files=files)
pythonからslackに画像を送るコードです。
変数の説明は下記のとおりです。
-
p_img
:送付する画像のパス -
CHANNEL
:送付先のチャンネル名
param
内部の文字列は適宜任意のものに変更することができます。