gpt4 book ai didi

python - Slack RTM API 使用 POST 或 GET 方法?

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:24 25 4
gpt4 key购买 nike

这似乎是一个蹩脚的问题,但如果有人能提供帮助就太好了。我写了一个小的 python 脚本,它根据通过 slack 的自定义机器人发送给它的命令返回一些输出。 Python 脚本使用 RTM API .每当有人在 slack 中提到机器人并传递一个命令(例如:@slackcustombot foobar)时,它就会从脚本中返回一条自定义消息(例如:Hi foobar)。现在问题出在安全方面。我的脚本驻留在未对 Internet 开放的服务器上。由于 Slack 使用动态 IP,因此不可能将 Slack IP 列入白名单。

所以基本上,我想知道的是,当 slack channel 中有人提到机器人时,当 slack 服务器上的机器人将命令发送到驻留在我服务器上的 python 脚本时,它是以 GET 方法还是以 POST 方式发送的方法?因为如果它是 GET 方法,我可能不必担心安全问题。但如果它作为 POST 方法发送,在这种情况下我可以使用什么替代方法?任何帮助表示赞赏。如果我在某个地方错了,请纠正我,仍在学习中。 :)

问候,朱奈德。

最佳答案

都没有。它使用 WebSocket协议(protocol)。如果您想使用基于 HTTP 的协议(protocol),我建议您查看 Slack 的 Event API .它使用 HTTPS POST 将消息传输到您的机器人。

Events API 并未提供 RTM API 可用的所有事件类型,但它更易于处理并且对于聊天机器人来说应该足够了。检查here有关哪些事件类型可用于 RTM API 和事件 API 的文档。

然而,您需要找到一种方法将您的机器人的 url 公开到 Internet,以便 Slack 可以使用它。如果您需要通过 Slack 机器人访问公司内部应用程序,我认为最好的方法是将 Slack 机器人放在公司 DMZ 中的网络服务器上。

一种更小规模的方法是使用转发提供商,它通过 VPN 隧道连接到您的本地网络服务器,并通过特殊的公共(public) URL 公开您的内部网络服务器。如果你想让 Slack 在路由器/防火墙后面的本地网络上与你的网络服务器对话,那将是可行的。一个例子是 ngrok ,但他们也是其他提供商。

关于python - Slack RTM API 使用 POST 或 GET 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com