我正试图让一个机器人“点击”Slack中的交互式消息上的按钮(最好是作为机器人,但使用用户令牌也可以)。
我发现发送动作信息的链接是
我的问题是我找不到“chat.attachmentAction”的任何文档。查看使用浏览器时发送的请求,它有一个http参数:“_ x_id”,有效负载是一个WebKitForm,包含4个项目:payload,client_id,payload_id和token。
我确定我是不是发送了适当的数据或身份验证或者是什么。我的所有POST都返回“invalid_payload”或“invalid_arg_name”。
任何帮助是极大的赞赏。
看起来我终于搞清楚了! 我不得不以老式的方式解决这个问题。 Slack客户支持仅对官方公共API有帮助。我将在Javascript中留下解决方案。
要做到这一点,你需要3件事:
choice_num
选项列表中的选择号。
例如如果消息有按钮(从左到右):是,否,也许,则是= 0,否= 1,可能= 2。message
交互式消息的jsonSLACK_TOKEN
你的松弛令牌(不确定机器人令牌是否有效,用户令牌会这样做)方法chat.attachmentAction
本身需要3个参数:
payload
service_id
和/或bot_user_id
token
args = encodeURI( '有效载荷= {' +'“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
然后只是向request_url发送一个异步POST,你应该得到这样的东西:
{ “改为”:真实的, “OK”:真正}