gpt4 book ai didi

slack-api - 如何在用户生成的消息中检测字符串并替换为 URL

转载 作者:行者123 更新时间:2023-12-04 02:18:28 24 4
gpt4 key购买 nike

Slack 编程的新手,诚然,我已经有一段时间没有开发很多东西了。

我正在寻找有关如何自动转换任何人在任何 channel 中发布的任何票证并将其转换为我们票务系统的深层链接的方向。

所以,也许原来的消息是这样的:

"Who is working on Ticket #212373?"



我希望将“#212373”自动转换为我们票务系统的链接。如果它将在目标系统中使用工单中的其他详细信息/属性(例如客户名称、问题描述、当前状态等)进行扩展,则会获得奖励积分。

谁能给我一些方向,也许是向我展示要定位的API,是否可能,推荐的方法等?

最佳答案

2018-12-08 更新:使用 OAuth
我终于通过 OAuth 正确地实现了这一点,考虑到幕后发生的事情的复杂性,这非常简单。要完全具有上述行为,请执行以下操作:

  • Register a Slack App
  • 添加 message.channels 对您的应用程序和 set your Request URL 的事件订阅.
  • 设置 Oauth flow根据 Slack 的文档。这是生成用户 token 的过程。
  • 指导您的用户使用“Add to Slack”按钮授权您的 Slack 应用程序,指定(至少) chat:write:user 范围。这是允许您的应用程序实际更新用户消息的关键组件。
  • 在步骤 2 中指定的请求 URL 处,处理传入的 message来自 Slack 的事件。在您(和我)的情况下,您需要解析 text event 的属性,这是用户发布的消息。
  • 最后,使用在步骤 4 中生成的相应用户的访问 token 发送 chat.update 使用已解析(和链接)的文本返回 Slack。
  • (可选)配置机器人用户发送 chat.postEphemeral 当您的应用程序解析由于缺少权限而无法更新的消息时。您可以向用户发送临时消息,让他知道他可以授权您的应用代表他链接事物。

  • 如果你想得到 message.channels来自私有(private)群组和/或直接消息的事件,您需要指定 groups:history im:history , 分别。
    请注意,您需要额外处理 message_changed如果您想在编辑的消息中维护链接,则事件,因为当用户直接编辑他们的消息时,Slack 会剥离链接标签。 message_changed事件的结构与包含在新 message 中的原始消息略有不同。新的 previous_message 中的参数和上一条消息参数,但可以像简单消息一样解析和更新。
    此外,您可以提供格式正确的 attachments参数到您的 chat.update方法来添加您在问题中提到的其他详细信息,例如客户姓名和票务信息。
    原创 2018-10-27:遗留方法,不推荐
    这是可能的,但 Slack 团队不鼓励这样做。该方法已弃用,将来可能会被删除。
  • 在此处生成旧 token :
    https://api.slack.com/custom-integrations/legacy-tokens
  • 为要监控的 channel 配置传出 webhook。
  • 将消息发布到配置了传出 webhook 的 channel 。
  • 解析端点上的消息。
  • 如果消息包含要链接的内容,请修改消息然后发送
    chat.update 的传入 webhook端点身份验证为
    上面生成的 token 。

  • 我已经实现了您所要求的确切行为,并且它已经完美运行了几年。但是,请注意以下缺点:
  • 所有希望解析其消息的用户都必须生成一个旧 token ,并且该 token 必须以可检索的方式存储在您的端点上,这既不被 Slack 推荐,也可能不安全。
  • Legacy Token 分配了强大的作用域,并且可以在坏人手中造成一些真正的损害。
  • 这已被弃用,并且可能在将来的任何时间被删除。
  • 每个传出 webhook 都计入免费计划的集成限制,因此您可能无法覆盖所有 channel 。
  • 这不适用于直接消息——仅适用于公共(public) channel 。
  • 关于slack-api - 如何在用户生成的消息中检测字符串并替换为 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43149708/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com