Slack DM пользователю не из `im.list`

Я внедряю бота Slack Ops, который будет уведомлять пользователей о завершении работы на сервере сборки. Он должен быть доступен пользователям DM по завершении работы.

Я установил пользователя-бота в соответствии с инструкциями @ https://api.slack.com/bot-users. Чтобы отправить DM определенному пользователю, chat.postMessage принимает первый аргумент (канал) как @username или идентификатор IM-канала согласно документации @ https://api.slack.com/methods/chat.postMessage#channels. Чтобы получить идентификатор канала обмена мгновенными сообщениями пользователя, можно использовать im.list. Но im.list дает только идентификаторы каналов обмена мгновенными сообщениями пользователей, с которыми бот ранее взаимодействовал (или пользователь отправил пинг на бота или бота, и пользователь является частью любого канала).

Таким образом, похоже, что бот не может DM никому из пользователей, с которыми он ранее не взаимодействовал. Правильно ли я понимаю поведение бота?

Есть ли обходной путь для этого варианта использования?


person Irshad    schedule 02.06.2016    source источник


Ответы (1)


Я думаю, вы ищете im.open. Передайте идентификатор пользователя, и вы получите идентификатор канала для прямой переписки с этим пользователем.

person user94559    schedule 02.06.2016
comment
@ Иршад - ты прав. im.list показывает каналы только для пользователей, которые имели какое-либо взаимодействие в личном сообщении. Использование решения @smarx для вызова im.open эффективно запускает DM с этим пользователем. После того, как вы позвонили im.open этому пользователю, I'm.list теперь включит их в результат. - person joehanna; 04.01.2019