Slack编程新手,不可否认,自从我开发了很多东西以来已经有一段时间了。
我正在寻找关于如何自动转换任何渠道中任何人发布的任何机票的方向,并将其转换为我们的票务系统的深层链接。
所以,也许最初的信息是这样的:
"嘿伙计们,他们在Ticket#212373上工作?"
我喜欢'#212373'自动转换为我们的票务系统的链接。奖励积分,如果它将与目标系统中的故障单中的其他详细信息/属性一起扩展,例如客户名称,问题描述,当前状态等。
任何人都可以给我一些指导,也许可以向我展示要定位的API,是否可行,推荐的方法等?
答案 0 :(得分:2)
无法编辑其他用户的消息内容。因此,您不能直接用链接替换票证号。
但是,作为解决方法,您可以让您的机器人“回复”邮件并使用threading system以这种方式添加直接链接。
因此,基本方法是:
使用机器人用户创建Slack应用
为机器人用户订阅消息事件
Bot用户加入了所有需要监视的频道
Slack应用程序接收了该频道的所有消息,对其进行解析并回复带有票证#
答案 1 :(得分:2)
我终于通过OAuth正确实现了这一点,考虑到幕后情况的复杂性,这非常简单。要完全具有您上面描述的行为,请执行以下操作:
message.channels
事件订阅添加到您的应用和set your Request URL中。 chat:write:user
范围,指导用户授权Slack应用。这是使您的应用程序实际更新用户消息的关键组件。 message
事件。在您(和我)的情况下,您将需要解析text
的{{1}}属性,该属性是用户发布的消息。 chat.update
与经过解析(并链接)的文本发送回Slack。 chat.postEphemeral
。您可以向用户发送短暂消息,让他知道他可以授权您的应用程序代表他链接事物。如果您想从私人群组和/或直接消息中获取event
个事件,则需要分别指定groups:history
和im:history
。
请注意,如果要维护已编辑邮件中的链接,则需要另外处理message.channels
事件,因为Slack在用户直接编辑其邮件时会剥离链接标记。 message_changed
事件的结构与新的message_changed
参数中包含的原始消息和新的message
参数中的先前消息有些不同,但可以像解析前一样简单地解析和更新消息。
此外,您可以为previous_message
方法提供格式正确的attachments
参数,以添加您在问题中提到的其他详细信息,例如客户名称和票证信息。
这是可能的,但Slack团队不鼓励这样做。该方法已弃用,以后可能会删除。
chat.update
端点的传入Webhook身份验证为
上面生成的令牌。我已经实现了您要求的确切行为,并且它已经完美地工作了几年。但是,请注意以下缺点: