NodeRed:如何从 Slack 应用交互消息中获取回复

NodeRed: How to get reply from Slack app interactive message

我正在尝试让 NodeRed 使用 Webhook 向 Slack 应用程序发送交互式消息以请求激活某些东西的权限。我可以 POST 连接到 webhook 而我的自定义节点没有任何问题,但我如何获得回复?

我是否需要使用 "http in" 节点来创建 Slack 可以使用的端点?有没有办法从 POST 发送消息的同一节点处理它?

此外,我在本地 运行 NodeRed。我可以使用 ngrok 以便 Slack 可以访问 http 端点(以防我需要使用它)吗?

您可以定义自己的自定义节点专用的 http 端点,这就是需要执行 oAuth 的节点处理回调的方式。像串行端口节点这样的节点也会这样做以向配置对话框提供信息。

确保为端点提供唯一的路由,这样它就不太可能与任何其他节点发生冲突。

串口节点可以看看源码here

如何确保可以从 Internet 安全访问 Node-RED 应该是一个单独的问题。

1) 是的,ngrok 可以很好地将您的本地网络服务器安全地暴露给 Internet 和 Slack。我每天都用它来开发 Slack 应用程序。请记住,如果无法从 Internet 访问您的应用程序,那么 Slack 也无法访问它。

2) 交互式消息仅适用于 Slack apps。一个原因是您需要提供到您的应用程序的路径,以便 Slack 知道在有人使用您的交互式消息(例如单击按钮)时将请求发送到哪里。但是您可以使用带有 webhook 的交互式消息,只要两者都在同一个 Slack 应用程序中设置。

3) 不要相信 "http-in node" 方法会奏效。如前所述,您需要配置到您的应用程序的路由,以便在您的 Slack 应用程序中接收来自 Slack 的消息。