- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这似乎是一个蹩脚的问题,但如果有人能提供帮助就太好了。我写了一个小的 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/
我刚刚创建了一个新的 Slack 应用程序并向其中添加了一个机器人。 现在我有 2 个可用的 token : OAuth 访问 token (xoxp) 机器人用户 OAuth 访问 token (x
我正在构建与 Slack 和客户端的消息传递集成。我需要在用户登录客户端时在相应的对话上显示徽章,以向客户端显示它有多少条未读消息。 我知道 channels.history 方法有 unreads
我有一个 slack POST api 调用,我正在从我的应用程序中调用它:- slack_client.api_call("chat.postMessage", channel=channel, t
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
Slack 默认头像来自哪里?这是他们自己的服务还是第三方服务? 在任何一种情况下,其他人是否有可能使用头像创建服务/系统,例如通过 slack API? 最佳答案 我 asked Slack dir
我正在编写一个脚本,以我的身份发布自动消息。我很难找到我的用户 token 。我必须创建一个应用程序吗? 最佳答案 是的,您必须创建一个应用程序才能生成用户 token 。您可以从此处创建一个应用程序
我正在为一些自动通知创建一个 slackbot,并且我收到了一个请求,让通知占据整个 slack 窗口的宽度,这看起来更干净。我发现 block 似乎占据了一个指定的宽度,并且不会水平延伸超过该点。我
我想创建一个 Slack 命令 /command do-something-with-that-file,同时用户上传文件。 到目前为止,我的命令已收到,但负载中没有文件。这可能吗? 我还在作用域中添
我一直在使用 Slack 操作 API,但不知道如何使用 response_url 在原始消息的线程中发送回复。 chat.postMessage 选项实际上不起作用,因为它需要手动将机器人添加到 c
“Slack”可以将链接展开为视频,但有些服务可以,有些则不能。 Vimeo( https://vimeo.com/ ) 可以在 Slack 中将链接展开为视频。 TED( https://www.t
我想复制一个现有的 Slack 应用程序,只更改一些小的配置。 除了从头开始创建新的 slack 应用程序并重新配置它之外,还有更简单的方法吗? 最佳答案 或者,您可以使用App Manifest 功
On slack - 我可以使用以下文本语法直接从我的两者中标记用户: hello Francois 我想对群组执行同样的操作(不幸的是,我的应用程序只知道群组名称,不知道群组 ID)。是否有这样做
我们使用通信工具 Slack。它在我的左侧边栏中显示了我最近与之进行过直接消息对话的在线和离开用户。我想在列表中看到当前在线的每个人,我们 Slack 服务器上的所有在线用户。在聊天应用程序的侧边栏中
我正在尝试构建一个在首次安装到工作区时执行某些操作的应用程序,例如:Ping 每个团队成员。 我找不到在应用安装时触发的事件类型: https://api.slack.com/events 有什么办法
我有一个发送长消息的机器人。 当它发送多条消息时,用户图标通常会滚出屏幕,因为没有人在机器人的消息之间发送过消息。 这意味着发送消息的时间和发送者不太明显。 有没有办法强制 Slack 为每条消息显示
我不完全确定这是否适合 Stack Overflow... 只是一个简短的问题,希望很多人会觉得有用。 我看到您可以使用主题标签,但它们必须与现有 channel 相对应。我有一个与一个项目相关的 c
例如,我希望在我休息的日子里每天在特定 channel 中显示提醒。就像是: /remind #channel @me will be on PTO 1/1/2016 until 1/5/2016 然
我被一位同事添加到 Slack 工作区。我一定已经接受了移动应用程序上的某些内容,因为我可以访问那里的工作区。不知何故,桌面应用程序从未反射(reflect)过这种变化,也没有表现出知道工作空间的迹象
我是 Slack 的新手,刚刚创建了我的第一个 channel 。在设置 channel 时,我添加了一个目的,但是一旦创建,还有一个添加主题的地方。 channel 的目的和主题有什么区别?它们看起
线程将是 Slack 的一个非常好的特性,只是它们太窄了,我找不到任何方法来配置它们的宽度。 有谁知道如何扩展线程以使其占用所有屏幕空间(在 Slack 内)?放大不会改变窄度。它只会使字体更大。我想
我是一名优秀的程序员,十分优秀!