Bots Slack bot预格式化用户输入的结构化数据的通道响应

Bots Slack bot预格式化用户输入的结构化数据的通道响应,bots,slack-api,slack,Bots,Slack Api,Slack,在工作中,我们有一个松弛的渠道,每个人都发布他们的每日scrum更新。格式如下所示: Yesterday: - Did something - Did something else Today: - Did something - Did something else Blocks: - This is blocking my progress 现在,我正试图找到一种方法,我可以为我的同事预先格式化它,就像HTML中的占位符文本一样 有没有一种方法可以在短时间内实现这一点

在工作中,我们有一个松弛的渠道,每个人都发布他们的每日scrum更新。格式如下所示:

Yesterday:

 - Did something
 - Did something else

Today:

 - Did something
 - Did something else

Blocks:

 - This is blocking my progress
现在,我正试图找到一种方法,我可以为我的同事预先格式化它,就像HTML中的占位符文本一样

有没有一种方法可以在短时间内实现这一点

到目前为止,我所考虑的方案如下所示 1.在Slack上创建一个
/
命令,当用户键入
/daily
并填充响应时,该命令将用此文本进行响应(我不确定这是否可行,我只创建了触发外部进程的斜杠命令,没有向Slack返回任何文本) 2.创建自定义应用程序并与Slack集成


我意识到这个问题的答案可能是自以为是的,这在社区中是不受欢迎的,但我想其他人可能也会遇到这个问题,或者将来也会遇到这个问题,而答案在这里是相对客观的,而不是纯粹主观的。

我一直在开发一些松弛的应用程序,并遇到类似的需求。在我看来,Slack目前没有提供很好的输入结构化数据的选项,因此我建议使用带有简单表单的HTML页面来输入数据,然后在Slack上自动发布更新

纯松弛选项

您可以使用或接收来自用户的输入,但在这两种情况下,用户都必须输入数据命令行样式,并且不能使用类似HTML占位符的内容。您可以选择使用关键字或在用户和机器人之间进行对话。输入是自由文本,需要应用程序解析

带关键字的斜杠命令示例:

/daily yesterday "this and that" 
/daily today "this and that" 
/daily blocks "this and that"
机器人对话示例:

@scrumbot daily
"What is your update for yesterday?"
@scrumbot this and that
"What is your update for today"
@scrumbot this and that
etc.
我已经在我的应用程序中使用了这两种方法,但是它们非常笨拙,而且对于输入大量的结构化文本来说不是很友好

HTML页面松弛

因此,我的建议是使用一个简单的HTML表单来输入文本,然后在Slack频道中自动发布结果。您可以使用或让用户单击Slack上生成的链接,将生成的HTML页面连接到正确的斜杠用户。前者提供了更好的安全性,后者更方便用户

例如:

/daily
"Please click *here* to enter your daily update"
然后在浏览器中打开生成的HTML页面,允许用户在表单中输入数据。提交后,输入将发布在正确通道的Slack上

顺便说一句,Slack团队计划在未来为Slack实施输入字段,但目前计划在中期进行,因此我不希望在不久的将来可以使用它。请参阅上的“交互式消息阶段3”

2017年9月更新 Slack团队引入了一种新方法,使用户能够输入结构化数据,称为

对话框类似于HTML中的表单,允许在Slack中创建具有多种类型(当前为text、textarea、select)输入字段的模式对话框窗口。它们可以作为对斜杠命令或交互消息(按钮、菜单)的响应而触发

现在,新的对话框功能将是从用户处获得结构化输入的最佳选择,如本问题中所要求的