Как мой бот, использующий Slack BotFramework, может игнорировать сообщения на всех каналах, кроме прямых? - PullRequest
0 голосов
/ 30 ноября 2018

Я знаю, что кажется, что об этом спрашивали раньше - но я понимаю, что вы можете выяснить, что кто-то разговаривает по каналу Slack, проверив activity.Conversation.IsGroup - я использую это успешно.

Это нормальнодо тех пор, пока у канала более двух участников!Но есть досадный крайний случай, когда вновь созданные каналы, скажем, или каналы, содержащие только двух участников, должны испытывать бот, пытающийся ответить на все сообщения там, пока по крайней мере 3 участника не будут добавлены к каналу.

Кто-нибудь нашел удобный способ обнаружить это?Я проверил Activity JSON как для непосредственного сообщения пользователю приложения / бота, так и для сообщения в канал, но не существует очевидного способа отличить сообщение канала от сообщения непосредственного пользователя боту.

1 Ответ

0 голосов
/ 04 декабря 2018

Если я хорошо помню, в Slack есть разница в именовании канала и прямого обмена сообщениями: эту разницу можно увидеть в поле Conversation.Id:

Примеры:

  • для канала: il будет выглядеть как Bxxxxxxxx:Tyyyyyyyy:Czzzzzzzz
  • для прямого обмена сообщениями между вами и людьми A: Bxxxxxxxx:Tyyyyyyyy:Daaaaaaaa
  • для прямого обмена сообщениями с несколькими людьми: Bxxxxxxxx:Tyyyyyyyy:Gbbbbbbbb

Где:

  • Bxxxxxxxx - идентификатор вашего бота. Slack
  • Tyyyyyyyy - идентификатор рабочего пространства вашего Slack
  • Czzzzzzzz - это текущий идентификатор Slack канала (отображается в URL при использовании веб-версии Slack)

Вы сможете обнаружить ваш случай, проверив идентификатор разговора

...