【发布时间】:2020-02-04 20:16:45
【问题描述】:
我正在尝试构建一个与云功能通信的 slackbot。在有事件的地方,slack 会发出一个 POST 请求,我会做一些处理并使用传入的 webhook 写入 slack 通道。但是我看到了一个文档,上面说如果你不回复,他们会再试一次。因此它似乎一直在写,因为我没有回应。似乎也没有关于我应该如何回应的明确文件。有没有更清晰的文档?请指教。谢谢。
【问题讨论】:
-
您能否提供一些有关您如何处理来自 Slack 的 POST 请求的详细信息?你在使用任何 Java 框架吗?听起来您需要对传入的 POST 请求返回响应。任何响应似乎都很好,因此只需使用 HTTP 200 进行响应。
-
它将 POST 请求发送到 IBM Cloud Functions。我不明白将 HTTP 200 返回到哪里。没有提供链接,除非它可能在 HTTP 标头中?我不完全明白。
-
您的应用程序正在等待来自 Slack 的 POST 请求。就像使用网络浏览器一样,Slack 期望得到响应。一个例子是试图导航到一个网站,你从浏览器向网站服务器发送一个 GET 请求。该网站收到 GET 请求并使用他们的网站回复您的浏览器。此响应包含一个 HTTP 响应标头。
-
默认情况下,只要设置了响应正文,IBM Cloud Functions 就会将 HTTP 200 返回给请求者。确保你在你的函数上设置了一个返回值。
-
在设计您的应用时,请确保当您的应用收到事件时,它首先响应 Slack,然后再执行任何其他操作。一个好的模式是将事件放入队列并让队列工作者(在另一个进程中)执行操作。或者您可以启动一个新的线程/进程来执行该操作。
标签: java slack slack-api ibm-cloud-functions