slack-api - 构建 slack slash 命令时如何管理冲突的开发环境?
问题描述
我有一个由 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 个人运行不同的机器人,但使用相同的斜杠命令。并根据文档:
多个命令可能占用相同的名称。如果发生这种情况并且用户尝试调用该命令,Slack 将始终调用最近安装的命令。
那么:是否有正确的“The Slack Way”结构允许单个开发人员在同一个斜杠命令上进行开发工作?
显然,我不想让开发人员运行一个独特的命令,他们只需要记住不要意外提交。到目前为止,我所做的最好的事情是制作@app.command("/the-bot")
更像@app.command(SLASH_COMMAND)
并将 SLASH_COMMAND 从环境变量中提取出来,允许个人开发人员设置他们的个人测试斜杠命令?
解决方案
不幸的是没有。您拥有的最佳选择是全部设置您自己的工作区,或者在您的登台应用程序中使用不同的斜杠命令。Slack 无法通过应用程序中的环境变量提供此功能,这很痛苦,因此所有这些都需要在 api.slack.com 站点上进行配置。
这样做的一种方法可能是请求一个免费的测试企业网格实例,然后在其中设置编号的工作空间。如果您希望将来在企业环境中开发,这也可能有助于您了解仅在企业环境中出现的应用程序问题。
另一种更笨拙的处理方法可能是创建一个转发应用程序,该应用程序侦听斜杠命令的调用,然后根据消息的某些特征(例如,它是什么通道)将事件转发到正确的登台环境中调用)。
推荐阅读
- neural-network - 如何在 PyTorch 中仅在某些时候忽略损失
- python - 读取python数据框,一列表示为字符串
- spring-boot - Spring Boot - JPA 规范返回的展平 JSON 实体以导出到 excel
- python - Python 问题创建定义以合并两个数据集 - 使用字符串来引用和 vars()
- node.js - 猫鼬回调不执行
- salesforce - Lightning Experience 专家 - 步骤 6 - 无法完成
- spring - https//recipe-010-webhook.herokuapp.com?op=webhook .Error - Invalid URI: The URI scheme is not valid
- angular - angular 9 数组在订阅方法中为空
- excel - 将 Excel 值传递给同一类的多个方法
- javascript - JS倒数计时器停止在0