我的使用Slack的BotFramework机器人如何忽略除直接渠道以外的所有渠道上的消息?

时间:2018-11-30 13:31:00

标签: c# azure botframework slack slack-api

我知道这似乎是以前被问到的-但我知道您可以通过检查activity.Conversation.IsGroup来确定有人在Slack频道上讲话-我正在成功使用它。

这很好,只要该频道有两个以上的成员即可!但是,在一个令人烦恼的极端情况下,例如,新创建的频道或仅包含两个成员的频道必须体验自动程序试图响应那里的所有消息,直到将至少3个成员添加到该频道。

有人能找到方便的方法来检测到这一点吗?我检查了Activity JSON是否既有直接发送给应用程序/机器人用户的消息,也有针对通道的消息,但是没有明显的方法可以区分通道消息和直接给机器人用户的消息。

1 个答案:

答案 0 :(得分:1)

如果我还记得的话,频道和直接消息传递之间的Slack命名会有区别:这种区别可以在Conversation.Id字段中看到:

示例:

  • 对于某个频道:il看起来像Bxxxxxxxx:Tyyyyyyyy:Czzzzzzzz
  • 在您和他人之间直接发送消息A:Bxxxxxxxx:Tyyyyyyyy:Daaaaaaaa
  • 与多人直接通信:Bxxxxxxxx:Tyyyyyyyy:Gbbbbbbbb

位置:

  • Bxxxxxxxx是您的机器人Slack的ID
  • Tyyyyyyyy是您的Slack的工作区ID
  • Czzzzzzzz是当前频道的Slack的ID(使用网络版的Slack在URL中可见)

您将可以通过查看对话ID来发现您的情况