【发布时间】:2020-02-04 00:26:19
【问题描述】:
当用户使用斜杠命令时,我会向该用户发布一条临时消息。当他们单击按钮时,我希望删除或更新该短暂消息。现在我只是想让删除部分工作。
在 Slack API 文档中,它说要向 response_url 发送 HTTP POST。当用户单击按钮时,我得到的唯一 response_url 是这样的:https://hooks.slack.com/actions/XXXXXXXXX/YYYYYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ
当我向该 url 发送 POST 时,我收到一个错误(我不确定错误是什么,我只知道我的代码在 try/catch 上失败)。
我发送到该 URL 的 JSON 如下所示:
{
"response_type" = "ephemeral",
"replace_original" = "true",
"delete_original" = "true",
"text" = ""
};
我在 Slack API 文档中看到它说我应该将该 JSON 发送到以 https://hooks.slack.com/services/ 开头的 URL,但是我没有收到任何包含 /services/ 的 response_url。
这是我用来发送响应的 C# 代码:
var replaceMsg = new NameValueCollection();
replaceMsg["delete_original"] = "true";
replaceMsg["replace_original"] = "true";
replaceMsg["response_type"] = "ephemeral";
replaceMsg["text"] = "";
var responseReplace = client.UploadValues(button.response_url, "POST", replaceMsg);
编辑:当我尝试发送时,我似乎遇到了 404 错误
Exception: System.Net.WebException: The remote server returned an error: (404) Not Found.
但是,当我将确切的 URL 粘贴到浏览器中时,我没有收到 404,而是看到了 JSON。
谁能指引我正确的方向?谢谢。
【问题讨论】:
-
尝试检查成功和失败请求的标头以查看是否存在差异(使用浏览器网络选项卡)