微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

构建 slack 斜线命令时如何管理冲突的开发环境?

如何解决构建 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 举报,一经查实,本站将立刻删除。