在阅读了Slack有关传入Webhooks的文档后,我不清楚。似乎传入的Webhooks与通过其聊天API的帖子之间存在歧义。听起来,如果我从https://my-application.yxz/api/notify?key=123123123123进行调用,然后从那里发布到Slack,那么Slack的操作按钮将回复相同的URL,但我无法确认。
https://api.slack.com/docs/message-attachments
我已经成功地将消息发送到指定的频道,但是我不知道如何获取响应,或者如何更改操作将自己的有效负载发送到的URL。那有可能吗?
对于下面的代码,我使用的是Laravel。理想情况下,我只想在用户设置中为其商店位置保留一个Slack Webhook URL,以便他们可以接收到由于我们的API被点击触发的Slack通知。
这是我要发送到Webhook的有效负载,它可以正常工作,但是我想添加可操作的按钮并将有效负载发布回我的外部站点。我不确定传入的Webhooks是否是正确的方法。有人可以阐明这一点吗?
# $helpdesk => contains webhook URL and other details
# $prompt => just some text
# $prompt_id => id associated with prompt object passed into the function this is found in
# $device => the source of this prompt
$payload = json_encode([
"text" => "A customer at $device->name requires attention",
"username"=>"Our Alert Thing",
"icon_emoji"=>":wave:",
"attachments"=> [
[
"fallback"=> $prompt,
"author_name"=> "Customer @ $device->name",
"title"=> $prompt,
"text"=> "Let them know if you can help",
"callback_id"=> "csprompt_".$prompt_id,
"color"=> "#24ACE2",
"actions"=> [
[
"name"=> "action",
"type"=> "button",
"text"=> "I call dibs",
"style"=> "primary",
"value"=> "helping",
],
]
]
]
]);
$res = $client->post($helpdesk->slack_webhook, ['body'=>$payload]);
答案 0 :(得分:0)
您无法以编程方式设置您的操作网址。 Slack会将所有交互式消息请求(例如,来自用户单击您的按钮之一的请求)发送到您为Slack应用配置的“请求URL”。
检查this link以获得有关在何处找到请求URL的详细信息。
我认为从技术上讲,您可以使用incoming webhooks,但我建议您将API与chat.postMessage
一起使用,因为传入的Webhook非常有限。例如它们只能与一个预配置的通道一起使用。