如何 select 与机器人交互消息中的按钮?
How to select a button from a interactive message with a bot?
我正在尝试让机器人 "click" Slack 中交互式消息上的按钮(最好是作为机器人,但也可以使用用户令牌)。
我发现 link 发送操作信息是
我的问题是我找不到 "chat.attachmentAction." 的任何文档 查看使用我的浏览器时发送的请求,它有一个 http 参数:“_x_id”,有效负载是一个 WebKitForm ,包含 4 项:payload、client_id、payload_id 和 token。
我确定我只是没有发送适当的数据或身份验证或什么。我所有的帖子 return "invalid_payload" 或 "invalid_arg_name."
非常感谢任何帮助。
看来我终于明白了!
我不得不用老式的方法解决它。 Slack 客户支持只会帮助官方 public API。我将在 Javascript.
中留下解决方案
为此,您需要 3 个东西:
choice_num
- 选项列表中选项的数量。
- 例如如果一条消息有按钮(从左到右):是、否和可能,则 yes=0、no=1 和 maybe=2。
message
- 互动留言json
SLACK_TOKEN
- 您的 slack 令牌(不确定机器人令牌是否有效,但是用户令牌有效)
方法chat.attachmentAction
本身需要3个参数:
payload
service_id
AND/OR bot_user_id
token
args = encodeURI(
'payload={'
+ '"actions":[' + JSON.stringify(message.attachments[0]["actions"][choice_num]) + '],'
+ '"attachment_id":"' + message.attachments[0]["id"] + '",'
+ '"callback_id":"' + message.attachments[0]["callback_id"] + '",'
+ '"channel_id":"' + message.channel + '",'
+ '"message_ts":"' + message.ts + '"}'
+ '&service_id=' + message.bot_id
+ '&bot_user_id=' + message.user
+ '&token=' + SLACK_TOKEN
)
request_url = 'https://YOURSLACKTEAM.slack.com/api/chat.attachmentAction?' + args
然后发送一个异步 POST 到 request_url 你应该得到这样的结果:
{"replaced":true,"ok":true}
我正在尝试让机器人 "click" Slack 中交互式消息上的按钮(最好是作为机器人,但也可以使用用户令牌)。
我发现 link 发送操作信息是
我的问题是我找不到 "chat.attachmentAction." 的任何文档 查看使用我的浏览器时发送的请求,它有一个 http 参数:“_x_id”,有效负载是一个 WebKitForm ,包含 4 项:payload、client_id、payload_id 和 token。
我确定我只是没有发送适当的数据或身份验证或什么。我所有的帖子 return "invalid_payload" 或 "invalid_arg_name."
非常感谢任何帮助。
看来我终于明白了!
我不得不用老式的方法解决它。 Slack 客户支持只会帮助官方 public API。我将在 Javascript.
为此,您需要 3 个东西:
choice_num
- 选项列表中选项的数量。
- 例如如果一条消息有按钮(从左到右):是、否和可能,则 yes=0、no=1 和 maybe=2。
message
- 互动留言json
SLACK_TOKEN
- 您的 slack 令牌(不确定机器人令牌是否有效,但是用户令牌有效)
方法chat.attachmentAction
本身需要3个参数:
payload
service_id
AND/ORbot_user_id
token
args = encodeURI(
'payload={'
+ '"actions":[' + JSON.stringify(message.attachments[0]["actions"][choice_num]) + '],'
+ '"attachment_id":"' + message.attachments[0]["id"] + '",'
+ '"callback_id":"' + message.attachments[0]["callback_id"] + '",'
+ '"channel_id":"' + message.channel + '",'
+ '"message_ts":"' + message.ts + '"}'
+ '&service_id=' + message.bot_id
+ '&bot_user_id=' + message.user
+ '&token=' + SLACK_TOKEN
)request_url = 'https://YOURSLACKTEAM.slack.com/api/chat.attachmentAction?' + args
然后发送一个异步 POST 到 request_url 你应该得到这样的结果:
{"replaced":true,"ok":true}