【问题标题】:Responding to Slack Events API响应 Slack 事件 API
【发布时间】:2020-02-04 20:16:45
【问题描述】:

我正在尝试构建一个与云功能通信的 slackbot。在有事件的地方,slack 会发出一个 POST 请求,我会做一些处理并使用传入的 webhook 写入 slack 通道。但是我看到了一个文档,上面说如果你不回复,他们会再试一次。因此它似乎一直在写,因为我没有回应。似乎也没有关于我应该如何回应的明确文件。有没有更清晰的文档?请指教。谢谢。

https://api.slack.com/events-api

【问题讨论】:

  • 您能否提供一些有关您如何处理来自 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


【解决方案1】:

非常清楚地描述了您需要回应的内容:

您的应用应在三秒内以 HTTP 2xx 响应事件请求

HTTP 2XX 表示 HTTP 状态码,范围从 200 到 299(并非所有这些都按照标准存在)。根据您使用的框架,您可能可以在 Web 请求的响应中设置 HTTP 状态代码。您的响应正文似乎无关紧要,只要它是 HTTP 2XX 状态代码即可。

List of HTTP 2XX status codes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多