我正在尝试使用slack_sdk通过云函数将一条json格式的消息发送给Slack,如果我像这样发送它(而不是格式化的),它就能工作。
client = WebClient(token='xoxb-25.......')
try:
response = client.chat_postMessage(channel='#random', text=DICTIONARY)
我发现了chat_postMessage支持通过设置headers发送json格式的Slack文档:
Content-type: application/json
Authorization: Bearer xoxb-25xxxxxxx-xxxx
在我上面的代码中,该工作将如何应用?我想发送一个很大的python字典,并希望收到它格式化的斯莱克通道。我尝试以多种方式添加它,但是部署失败了。这是文档:https://api.slack.com/web
发布于 2022-12-04 08:26:47
虽然为时已晚,但我希望这能对将来遇到这一问题的人有所帮助。
我想你误解了文件。JSON支持允许接受JSON格式的POST消息体,因为前面只支持application/x-www-form-urlencoded
格式。阅读更多的这里。
要回答您的问题,您可以尝试通过格式化字典或在代码块中发送字典,因为Slack支持标记。
参考资料- 松弛文本格式.
样本代码-
from slack_sdk import WebClient
import json
client = WebClient(token="xoxb........-")
json_message = {
"title": "Tom Sawyer",
"author": "Twain, Mark",
"year_written": 1862,
"edition": "Random House",
"price": 7.75
}
# format and send as a text block
formatted_text = f"```{json.dumps(json_message, indent = 2)}```"
client.chat_postMessage(channel = "#general", text = formatted_text)
# format and send as a code block
formatted_code_block = json.dumps(json_message, indent = 2)
client.chat_postMessage(channel = "#general", text = formatted_code_block)
产出-
https://stackoverflow.com/questions/73580490
复制相似问题