带有事件订阅的Webhook传入创建循环

问题描述 投票:1回答:1

我正在使用Web服务api从松弛通道(事件订阅)和相同的Web服务api接收消息,以便在同一松弛通道上向用户发送消息(Incoming webhook)。

但是当我发送消息时,同样的消息会通过松弛事件订阅发送回我的api。这创造了一个无限循环。

我如何声明我发送到频道的消息,当我收到活动订阅时,我可以查看该频道?

webhooks slack slack-api
1个回答
0
投票

这是Slack的正常行为,任何配置都无法更改。当您订阅消息事件时,您将收到所有消息的事件,包括来自您自己的应用程序的消息。

因此,为了避免无限循环,您需要在继续处理之前检测并过滤掉自己机器人的消息。这可以很容易地完成,因为所有消息都包含发件人的名称。例如你可以过滤掉所有拥有你的Slack应用程序的bot_id或来自机器人的消息(有subtype = bot_message)的消息。

以下是一些示例消息的外观以及来自真实用户的消息与来自Slack应用程序的消息的不同之处:

来自真实用户的示例消息:

 {
      "type": "message",
      "user": "U12345467",
      "text": "Good read for some of guys",
      "ts": "1531745292.000021"
 }

来自Slack app或bot的示例消息

{
      "text": "Hey guys",
      "bot_id": "B12345678",          
      "type": "message",
      "subtype": "bot_message",
      "ts": "1531700187.000049"
 }

另见this answer

© www.soinside.com 2019 - 2024. All rights reserved.