如何解决构建 slack 斜线命令时如何管理冲突的开发环境?
我有一个由 3-4 人组成的团队,他们使用斜杠命令为一个 slack 应用程序(使用 Bolt 构建)做出贡献。该应用程序基本上归结为以下内容:
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
# Get SLACK_APP_TOKEN and SLACK_BOT_TOKEN
app = App(token=SLACK_BOT_TOKEN)
@app.command("/the-bot")
def the_bot_slash_command(ack,body,client,respond):
ack()
if body["text"] == "foo":
do_foo()
else:
respond("HELP TEXT HERE")
slack = SocketModeHandler(app,SLACK_APP_TOKEN)
我们有一个免费的 slack 工作区可供测试,每个开发人员都设置了自己的应用版本。问题是现在我们有 3-4 个人,每个人都在运行一个不同的 bot,但是使用相同的斜线命令。并根据文档:
多个命令可能占用相同的名称。如果发生这种情况并且用户尝试调用命令,Slack 将始终调用最近安装的命令。
那么:是否有一个正确的“The Slack Way”结构来允许单个开发人员在同一个斜杠命令上进行开发工作?
显然,我不想让开发人员运行一个独特的命令,他们只需要记住不要意外提交。到目前为止,我所拥有的最好的方法是使 @app.command("/the-bot")
更像 @app.command(SLASH_COMMAND)
并将 SLASH_COMMAND 从环境变量中拉出,允许个别开发人员设置他们的个人测试斜杠命令?
解决方法
不幸的是没有。您拥有的最佳选择是全部设置您自己的工作区,或者在您的暂存应用程序中使用不同的斜杠命令。令人痛苦的是,Slack 没有通过您应用中的环境变量提供此功能,因此所有这些都需要在 api.slack.com 站点上进行配置。
执行此操作的一种方法可能是 request a free testing enterprise grid instance,然后在其中设置编号的工作区。如果您希望将来在企业环境中进行开发,这也可能有助于您了解应用中只会出现在企业环境中的问题。
另一种处理这个问题的明显更hacky的方法可能是创建一个转发应用程序,该应用程序侦听 slash 命令的调用,然后根据消息的某些特征(例如,什么调用它的通道)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。