使用WebHook和Ansible Slack在Slack消息中提及具有多单词显示名称或用户ID的人
我正在使用Ansible使用WebHook和Ansible Slack在Slack消息中提及具有多单词显示名称或用户ID的人,ansible,webhooks,slack-api,Ansible,Webhooks,Slack Api,我正在使用Ansibleslack模块发送通知,其中包括对应呈报人员的@notices。我在使用多单词显示名称时遇到了问题,尽管单单词显示名称可以正常工作 例如: ok: [localhost] => { "msg": "message: `SANDPIT` started ELMS and LACM MapGuide\nFYI <@alice> <@bob>" } 如前所述,Slack也不购买这些用户ID 下面是向Slack发送消息的Ansible任务。
slack
模块发送通知,其中包括对应呈报人员的@notices。我在使用多单词显示名称时遇到了问题,尽管单单词显示名称可以正常工作
例如:
ok: [localhost] => {
"msg": "message: `SANDPIT` started ELMS and LACM MapGuide\nFYI <@alice> <@bob>"
}
如前所述,Slack也不购买这些用户ID
下面是向Slack发送消息的Ansible任务。所有令牌等都按预期工作,这一切都发生在同一个工作区中
- name: Send message via Slack
slack:
token: 'valid token'
color: 'valid color'
msg: '{{ message }}'
link_names: 1
# problems with notifications should not fail the pipeline
ignore_errors: yes
根据slack插件msg属性的定义,所有尖括号和符号都需要使用HTML符号转义:
要发送的消息。请注意,模块不处理转义
人物。应使用纯文本尖括号和符号
发送前已转换为HTML实体(例如&到&)。看见
Slack的文档()
更多
所以你想试试这样的东西:
TASK [slack : debug]
***********************************************************
ok: [localhost] => {
"msg": "message: `SANDPIT` started ELMS and LACM MapGuide\nFYI <@U12345DK> <@U12345TT>"
}
如Slack memo所述,不再推荐链接用户名,并将在2017年9月完全停止工作。所以你想让你的应用程序与用户ID一起工作,顺便说一句,通常效果很好。我不想逃避尖括号,因为当你逃避它们时,它们不起作用——它们变成了Slack输出的文本。这里,它们是用来识别@提及的特殊字符。当我逃离它们时,松弛通道上出现
FYI@U830369DK@U6M9NQD1T
。如果不进行转义,我将获得更好的结果而不进行转义:FYI
。但是Slack仍然没有正确解释用户ID,因为这些用户ID被尖括号包围,不可单击,也不突出显示。收件人没有被告知他们有个人信息。我的回答是基于Ansible提供的文档。显然,这并不准确。您可以尝试使用未转义的括号,并将属性link\u names
设置为1。如果这也不起作用,那么我建议在
- name: Send message via Slack
slack:
token: 'valid token'
color: 'valid color'
msg: '{{ message }}'
link_names: 1
# problems with notifications should not fail the pipeline
ignore_errors: yes
TASK [slack : debug]
***********************************************************
ok: [localhost] => {
"msg": "message: `SANDPIT` started ELMS and LACM MapGuide\nFYI <@U12345DK> <@U12345TT>"
}