gpt4 book ai didi

slack-api - 如何仅使用 Slack 交互式按钮响应替换按钮(附件)

转载 作者:行者123 更新时间:2023-12-02 19:32:16 26 4
gpt4 key购买 nike

我已成功使用 Google Apps 脚本 (GAS) 创建了一个简单的交互式按钮 Slack 应用。

我知道如何用响应替换原始消息,但我只想替换按钮,如 Slack 交互式按钮文档中多个位置所示(但没有明确解释):
https://api.slack.com/docs/message-buttons#crafting_your_message

我想做这里演示的事情: https://a.slack-edge.com/dcb1/img/api/message_guidelines/Example_6.gif

这是对原始邮件的更新,还是用相同的文本但不同的附件替换原始邮件,...?

我当前的交互按钮消息代码如下所示:

function sendMsgWithButton() {

// slack channel url (where to send the message)
var slackUrl = "https://hooks.slack.com/services/...";

// message text
var messageData = {
"text": "Here's your interactive buttons message.",
"attachments": [
{
"text": "Can you click the button?",
"fallback": "Sorry, no support for buttons.",
"callback_id": "ptNotificationButtonResponse",
"color": "#3AA3E3",
"attachment_type": "default",
"actions": [
{
"name": "userResponse",
"text": "OK",
"style": "primary",
"type": "button",
"value": "ok"
}
]
}
]
}

// format for Slack
var options = {
'method' : 'post',
'contentType': 'application/json',
// Convert the JavaScript object to a JSON string.
'payload' : JSON.stringify(messageData)
};

// post to Slack
UrlFetchApp.fetch(slackUrl, options);
}

我当前的操作 URL 代码现在如下所示:

function doPost() {

var replyMessage = {"replace_original": true,
"response_type": "in_channel",
"text": "I see you clicked the button."
};

return ContentService.createTextOutput(JSON.stringify(replyMessage)).setMimeType(ContentService.MimeType.JSON);
}

我不想替换整个原始消息,而是只想用复选框和确认消息之类的内容替换按钮,如上面的 gif 所示。

谢谢!

最佳答案

您只能替换完整消息,而不能仅替换部分消息。

有两个选项可以更新原始消息:

  1. 使用 {"replace_original": true} 响应 Slack 请求

  2. 使用chat.update

如果您的原始消息不是ephemeral类型,您将在original_message属性中从Slack获得原始消息的副本作为有效负载的一部分,该属性可以是有助于更新交换原始消息。

参见this page Slack 文档中作为引用。

关于slack-api - 如何仅使用 Slack 交互式按钮响应替换按钮(附件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42793220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com