在工作中,我们有一个Slack频道,每个人发布他们的每日Scrum更新。格式是这样的:
Yesterday:
- Did something
- Did something else
Today:
- Did something
- Did something else
Blocks:
- This is blocking my progress
现在,我正试图找到一种方法,让我可以为我的同事预先格式化,例如HTML中的占位符文本
有没有办法在Slack中实现这一目标?
到目前为止我考虑过的选项如here所示
1.在Slack上创建一个/
命令,当用户键入/daily
并填充响应时,该命令会响应此文本(我不确定这个的可行性,我只创建了斜杠命令,触发了一个外部进程,没有返回任何文本到 Slack)
2.创建自定义应用程序并与Slack集成
我意识到这个问题的答案可以是自以为是的,而且这在社区中是不鼓励的,但我认为其他人可能也会遇到这个问题,或者将来也会这样,答案在这里是相对客观的,不仅仅是主观的。
答案 0 :(得分:2)
我一直在开发几个Slack应用程序,并遇到了类似的要求。在我看来,Slack目前没有提供输入结构化数据的好选项,所以我建议使用一个简单形式的HTML页面来输入数据,然后自动在Slack上发布更新。
使用纯Slack的选项
您可以使用slash commands或bot来接收用户的输入,但在这两种情况下,用户都必须输入数据命令行样式,并且无法使用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阶段”。
Slack团队引入了一种新方法,使用户能够输入名为dialogs的结构化数据。
对话框类似于HTML中的表单,允许在Slack中创建具有多种输入字段(当前为text,textarea,select)的模式对话框窗口。它们可以作为对斜杠命令或交互式消息(按钮,菜单)的响应而被触发。
新的对话框功能现在是获得用户结构化输入的最佳选择,如此问题所要求的那样。