我按照本教程:https : //api.slack.com/tutorials/easy-peasy-slash-commands 为斜线命令创建了一个简单的 slack 应用程序。
该应用程序在我的服务器上运行在 VPN 上的端口 1336 下。此服务器(包括 IP - 显然)无法在 VPN 之外访问。
按照上述教程,Slack 应用程序配置(在 slack 网站上)需要两件事:
- OAuth 的重定向 URL
- 斜杠命令的请求 URL
到目前为止我做了什么:
启动 slack 应用程序后,转到
[IP_OF_SERVER]:1336/login
并为我的团队授权该应用程序。OAuth 重定向 URL(设置为:)
[IP_OF_SERVER]:1336/oauth
工作正常。
请记住,斜杠命令的请求 URL 当前设置为:http://[IP_OF_SERVER]:1336/slack/receive
- 使用斜杠命令测试应用程序返回
Darn – that slash command didn't work (error message: 503_service_error. Manage the command at [name_of_application]
.
但是,如果我使用 localtunnel(如教程中所述),它绝对可以正常工作......
lt --port 1336 --subdomain myslashcommand
如果我将上面的(https://myslashcommand.localtunnel.me
)设置为斜杠命令的请求 URL(https://myslashcommand.localtunnel.me/slack/receive
),那么它会按预期工作!
问题是防火墙不断阻止localtunnel.me:[different port number every time]
连接并使 localtunel 命令崩溃,这意味着我无法将 localtunnel 用于我的生产应用程序。
它在教程链接中提到:
此时的一个常见问题是 URL 不安全:要么它不使用 HTTPS,要么无法验证 HTTPS 连接的安全性。如果您按照上面的建议使用 localtunnel,这应该不是问题。但是一旦你部署了你的斜杠命令,你应该确定你的托管服务提供了一个有效的 HTTPS 连接——但是我们可以在后面的教程中担心这个。
这可能是我的问题的原因吗?从外观上看,该应用程序仅通过 HTTP 运行。我该如何解决这个问题?这与我的服务器 IP 未向公众公开这一事实有关吗?有必要吗?如果我的 OAuth 和登录 URL 有效,那么这有关系吗?