Отправить уведомление о сообщении команде Microsoft через REST API

Я прочитал много документов на веб-сайте Microsoft и здесь, но пока не смог найти решения для своего случая. В основном мне нужно использовать Microsoft Rest API (Graph?) Для отправки уведомления о сообщении (конкретному пользователю) из внешнего приложения, предпочтительно используя NodeJS, Java или Python.

Ближайшее, что я думаю, было здесь: - https://docs.microsoft.com/en-us/graph/api/resources/chat?view=graph-rest-beta - https://docs.microsoft.com/en-us/graph/api/resources/chatmessage?view=graph-rest-beta

Однако я не смог найти метод отправки. Кроме того, эти документы находятся в бета-версии, и есть предупреждение не использовать ее в производственных приложениях.

По ссылке ниже (которая относится к версии 1.0) я вижу ресурс chatMessage (предварительный просмотр) и метод send, но когда я нажимаю на него, я получаю 404: https://docs.microsoft.com/en-us/graph/api/resources/teams-api-overview?view=graph-rest-1.0

Мне нужно отправить одностороннее сообщение (не туда и обратно, не нужны боты), просто простое уведомление и все.

Возможно ли реализовать такое решение? Любая ссылка, которая могла бы помочь?

Спасибо


person user3667143    schedule 30.08.2019    source источник


Ответы (2)


В настоящее время только боты может отправлять пользователям сообщения 1: 1.

Создать chatMessage не поддерживает контекст приложения, поэтому это должен быть пользователь, отправляющий сообщение. Кроме того, вы не можете создать новый чат, вы должны использовать метод list chats для получения идентификатора существующего чата перед созданием сообщения чата.

person Wajeed-MSFT    schedule 30.08.2019
comment
Привет, спасибо за ответ, и я сожалею о моем позднем ответе. В данный момент я иду в этом направлении (проактивные боты). Мой первый шаг - запустить простого бота в MS Teams только для обмена сообщениями. Я создал бот для веб-приложения в Azure, и когда я пытаюсь добавить этого бота в Teams, я получаю сообщение об ошибке (отправка новых сообщений на этот бот был отключен вашим администратором.) Администратор сказал, что он уже настроил это, поэтому я проверяю, что может быть (я использую пробную учетную запись для создания бота). - person user3667143; 24.09.2019
comment
На втором этапе я попытаюсь найти способ вызвать бота из HTTP-запроса, передавая ссылку на пользователя, а затем отправить сообщение непосредственно пользователю (команды). Я провел небольшое исследование, но не нашел способа идентифицировать и отправить сообщение непосредственно конкретному пользователю (команде) без того, чтобы этот пользователь начал разговор или не отправлял ссылку на идентификатор, есть идеи по этому поводу? Спасибо. - person user3667143; 24.09.2019
comment
Чтобы отправить превентивное сообщение любому пользователю, вам необходимо знать serviceUrl, tenantId и уникальный идентификатор пользователя, как указано в Получить необходимую информацию о пользователе. - person Wajeed-MSFT; 26.09.2019
comment
Отлично, посмотрю, как только вернусь к этому проекту. Спасибо - person user3667143; 03.10.2019

Некоторые фрагменты кода доступны по адресу https://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/conversation-basics?tabs=python

Отправить сообщение [Python]

Чтобы отправить текстовое сообщение, укажите строку, которую вы хотите отправить в качестве действия. В обработчиках активности бота используйте метод SendActivityAsync объекта контекста поворота для отправки одного ответа на сообщение. Вы также можете использовать метод SendActivitiesAsync объекта для одновременной отправки нескольких ответов. В приведенном ниже коде показан пример отправки сообщения, когда кто-то добавлен в беседу.

async def on_members_added_activity(
    self, members_added: [ChannelAccount], turn_context: TurnContext
):
    for member in teams_members_added:
        await turn_context.send_activity(f"Welcome your new team member {member.id}")
    return
person Nand0san    schedule 22.10.2020