Slack API "attachments" 未显示
Slack API "attachments" not showing
附件在以下代码中不起作用,response_type
也没有按应有的方式显示。我也尝试过使用 Python 的 Slack 客户端,但发生了完全相同的事情。
def send_message(channel_id, text):
params = {
"token" : token,
"username" : "NEW BOT",
"channel" : channel_id,
"text" : text,
"response_type": "ephemeral",
"attachments": [{ "text":"This is some text" }]
}
headers = {'content-type': 'application/json'}
slack_api = 'https://slack.com/api/chat.postMessage'
requests.get(slack_api, json=params, headers=headers)
return
@app.route('/', methods=['GET', 'POST'])
def main():
if sc.rtm_connect():
sc.rtm_read()
text = request.args.get("text")
channel_id = request.args.get("channel_id")
send_message(channel_id, text)
return Response(), 200
response_type
字段只能在生成消息以响应斜线命令或消息按钮操作调用时设置。它不能直接使用 chat.postMessage
设置,因为没有关于目标用户的上下文来显示该临时消息。
关于 chat.postMessage
的另一个怪癖是它目前不像传入的 webhooks 那样接受 JSON。相反,您需要发送 application/x-www-form-urlencoded
种类的 POST 参数。更古怪的是,attachments
字段实际上并没有作为 JSON 的字符串发送,而是 URL 编码为参数。
还有一个提示,使用 chat.postMessage
和其他写入方法,您应该使用 HTTP POST 而不是 GET。
attachments='[{"title": "Try these - ","text": " Text ", "mrkdwn_in":["text"]}]'
给附件加上标题。它适用于我的情况。
附件在以下代码中不起作用,response_type
也没有按应有的方式显示。我也尝试过使用 Python 的 Slack 客户端,但发生了完全相同的事情。
def send_message(channel_id, text):
params = {
"token" : token,
"username" : "NEW BOT",
"channel" : channel_id,
"text" : text,
"response_type": "ephemeral",
"attachments": [{ "text":"This is some text" }]
}
headers = {'content-type': 'application/json'}
slack_api = 'https://slack.com/api/chat.postMessage'
requests.get(slack_api, json=params, headers=headers)
return
@app.route('/', methods=['GET', 'POST'])
def main():
if sc.rtm_connect():
sc.rtm_read()
text = request.args.get("text")
channel_id = request.args.get("channel_id")
send_message(channel_id, text)
return Response(), 200
response_type
字段只能在生成消息以响应斜线命令或消息按钮操作调用时设置。它不能直接使用 chat.postMessage
设置,因为没有关于目标用户的上下文来显示该临时消息。
关于 chat.postMessage
的另一个怪癖是它目前不像传入的 webhooks 那样接受 JSON。相反,您需要发送 application/x-www-form-urlencoded
种类的 POST 参数。更古怪的是,attachments
字段实际上并没有作为 JSON 的字符串发送,而是 URL 编码为参数。
还有一个提示,使用 chat.postMessage
和其他写入方法,您应该使用 HTTP POST 而不是 GET。
attachments='[{"title": "Try these - ","text": " Text ", "mrkdwn_in":["text"]}]'
给附件加上标题。它适用于我的情况。