Slack bot预格式化用户

时间:2017-02-24 14:53:14

标签: bots slack-api slack

在工作中,我们有一个Slack频道,每个人发布他们的每日Scrum更新。格式是这样的:

Yesterday:

 - Did something
 - Did something else

Today:

 - Did something
 - Did something else

Blocks:

 - This is blocking my progress

现在,我正试图找到一种方法,让我可以为我的同事预先格式化,例如HTML中的占位符文本

enter image description here

有没有办法在Slack中实现这一目标?

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

我意识到这个问题的答案可以是自以为是的,而且这在社区中是不鼓励的,但我认为其他人可能也会遇到这个问题,或者将来也会这样,答案在这里是相对客观的,不仅仅是主观的。

1 个答案:

答案 0 :(得分:2)

我一直在开发几个Slack应用程序,并遇到了类似的要求。在我看来,Slack目前没有提供输入结构化数据的好选项,所以我建议使用一个简单形式的HTML页面来输入数据,然后自动在Slack上发布更新。

使用纯Slack的选项

您可以使用slash commandsbot来接收用户的输入,但在这两种情况下,用户都必须输入数据命令行样式,并且无法使用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.

我一直在我的应用程序中使用这两种方法,但它们非常笨拙,并且对于输入大量结构化文本而言不是非常用户友好。

Slack with HTML page

我的建议是宁愿使用简单的HTML表单输入文本,然后自动将结果发布到Slack通道。您可以使用Sign-in with Slack或让用户单击Slack上生成的链接,将生成的HTML页面连接到正确的Slash用户。第一个提供更好的安全性,后者更加用户友好。

示例:

/daily
"Please click *here* to enter your daily update"

然后在浏览器中打开生成的HTML页面,允许用户在表单中输入他的数据。提交后,输入将在Slack上以正确的频道发布

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

2017年9月更新

Slack团队引入了一种新方法,使用户能够输入名为dialogs的结构化数据。

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

新的对话框功能现在是获得用户结构化输入的最佳选择,如此问题所要求的那样。

相关问题