语言:Python 2.7
大家好。我在这里找到了一个非常有用的脚本:Python to Slack Web Hook
展示了如何将消息发送到Slack网站挂钩。
import json
import requests
# Set the webhook_url to the one provided by Slack when you create the webhook at https://my.slack.com/services/new/incoming-webhook/
webhook_url = 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
slack_data = {"text": "<https://alert-system.com/alerts/1234|Click here> for details!"}
response = requests.post(
webhook_url, data=json.dumps(slack_data),
headers={'Content-Type': 'application/json'}
)
if response.status_code != 200:
raise ValueError(
'Request to slack returned an error %s, the response is:\n%s'
% (response.status_code, response.text)
)
当我运行.py文件时,它可以正常工作。
现在,我有一个文件,其中包含要发送到Slack的多行消息。我已经在文件中正确格式化了它,没有空格等。这只是抓住它并传递它的问题,所以slack_data = line1等。
因此,我使用以下内容修改文件:
with open('export.txt', 'r') as e:
for line in e:
slack_data = line
现在,如果我在那之后立即执行
print slack_data
,信息将按原样返回到屏幕上,因此我认为这很好。我尚未开始使它适用于每一行,因为它甚至不在第一行上起作用。我在运行时收到无效的有效负载400。
编辑:Slack支持人员说,由于某种原因,他们收到的内容中已插入转义字符。
"{\"text\": \"<https://alert-system.com/alerts/1234|Click here> for details!"}\n"
任何指示或协助,不胜感激。
谢谢!!
最佳答案
由于我已经在文件中将数据预先格式化为JSON,因此只需从代码中删除json.dumps即可。
OLD:
#response = requests.post(webhook_url, data=json.dumps(slack_data), headers={'Content-Type': 'application/json'})
新功能:
response = requests.post(webhook_url, data=slack_data, headers={'Content-Type': 'application/json'})
一旦我做到了,一切都会像个魅力。