slack - 如何将内部 API(无法在办公网络外部访问)集成到 slacklash 命令

标签 slack slack-api

我正在尝试对我的松弛 channel 之一使用斜杠命令。我尝试使用 git API 进行 POC,效果很好。

我首先从此链接创建了一个斜杠命令: https://api.slack.com/censored/slash-commands

命令:/poc 请求网址:http://jsonplaceholder.typicode.com/posts

当我在 channel 的 Slack 聊天框中输入/opc 时,效果很好。它返回一些数据。

但是当我将请求 URL 更改为只能从 Office 域访问的内部 API 时,我收到错误:

Darn – that slash command didn't work (error message: Failure when receiving data from the peer). Manage the command at .

我相信,以防万一,slack 无法访问我的内部 URL。可以看到松弛日志吗?

任何人都可以帮我吗?

最佳答案

这不起作用,因为需要从公共(public)互联网访问请求 URL 才能与 Slack 配合使用。

一般来说,Slack 的大多数交互功能(Slash 命令、交互消息、模态、事件 API 等)都要求您的应用提供可由 Slack 通过 HTTP 调用的公共(public)端点。

为了使用 Slack 访问内部 API,您需要某种网关或隧道穿过公司的防火墙,将请求 URL 公开给 Slack。有很多方法可以做到这一点,并且需要根据您公司的安全策略来设计解决方案。

这里有一些建议:

VPN 隧道

一种方法是在内部 Web 服务器(可以访问内部 API 的服务器)上运行斜杠命令的脚本,使用 VPN 隧道将该 Web 服务器公开到 Internet,例如使用类似 ngrok 的工具.

非军事区

另一种方法是在公司网络的 DMZ 中运行您的应用程序,并配置两侧的防火墙,以允许从公共(public)互联网访问 Slack,并允许您的应用程序访问您的内部网络。

桥梁

另一种方法是在公共(public)互联网上托管并运行应用程序中与 Slack 交互的部分,以及在公司内部网络上与内部网络交互的部分。然后添加一个安全连接,允许公共(public)部分与在公司内部网络上运行的部分进行通信。

关于slack - 如何将内部 API(无法在办公网络外部访问)集成到 slacklash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44726200/

相关文章:

python - Django 全授权 Slack : Redirect URL as https instead of http and Social Network Login Failure

slack - 如何查看有人在 Slack 中将公共(public) channel 设为私有(private)?

prometheus - 设置 PromQL 值的格式

node.js - 使用 Microsoft Bot Framework 在 slack 中获取消息发件人的姓名

php - 如何创建包含上传图像的 Slack 消息?

node.js - 单击后如何禁用 slackbot 按钮

jenkins-plugins - Jenkins : Slack notification shows unconfigured-jenkins-location

javascript - 如何在 Slack App 中将值从 Slack channel 传递到 `Options Load URL`

slack-api - 在 Slack 的传出 webhook 中添加身份验证 header ?

amazon-web-services - 回调后 AWS Lambda 继续执行