Как мне уведомить пользователей Slack, которые не находятся на канале? - PullRequest
3 голосов
/ 03 августа 2020

Что мы пытаемся сделать

Я работаю над автоматизацией, которая отправляет сообщения в канал Slack, используя Incoming Webhooks в настраиваемом приложении Slack. В сообщениях упоминаются люди.

Что работает

Мы отлично можем отправить сообщение, оно имеет форматированный контент, а имена пользователей правильно разрешены с помощью ссылки - флаг имен .

a successful message being posted and tagging people

What isn't working

The whole point of the notification is to inform a dynamic set of people about something they should care about. The set of people we tag varies hugely (think people who contributed to a pull request) and so not all possible recipients are in the channel these automated messages go to.

We assumed that given the usernames are being directly @-mentioned, they would be notified by Slack. However, two of the users we've tested with and @-mentioned confirm they never received a notification they had been tagged.

This is different to "human" behaviour, where if you @-mention someone in Slack, you get a little message reminding you that person isn't in this channel and offers to invite them or let them know.

пример упоминания пользователя, которого нет на канале

Насколько мы можем судить, программная отправка сообщения эквивалентна «Ничего не делать» на картинке выше. Я хочу использовать любой из двух других вариантов, предпочтительно «Дать им знать».

Как я могу уведомить людей, которых они упомянули? Я просмотрел всю документацию по API, и ничего не говорится об уведомлении пользователей, не участвующих в канале, о том, что они упомянуты.

Это не может быть необычной проблемой .... верно?

Примечания:

  • Мы не вызываем chat.postMessage напрямую, это единственная документация по именам ссылок, на которую я мог найти ссылку. Мы используем Incoming Webhooks, который имеет минимальную документацию по параметрам - похоже, он такой же, как chat.postMessage.
  • Мы бы предпочли не отказываться от Incoming Webhooks, но мы можем выполнить индивидуальную интеграцию с API, если нужно.

1 Ответ

1 голос
/ 03 августа 2020

Сначала вам нужно пригласить пользователя на канал, используя клиент Python, который:

client.channels_invite(
    channel=channel_id,
    user=user_id
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...