Как отправить личное сообщение в Teams - bot framework 4 - PullRequest
0 голосов
/ 25 мая 2020

Я использую botbuilder для написания бота MS Teams с Node / TypeScript. И я должен отправлять личное сообщение, когда кто-то отправляет текст боту в канале.

context.sendActivity(...) отправляет сообщение в качестве ответа.

Но мне нужно отправить сообщение пользователю в личном чате 1: 1 с моим ботом. Этот context.activity не содержит идентификатора личного разговора. Как это сделать?

UPD: Я нашел возможное решение, но не уверен, что оно будет работать в перспективе.

  1. сохранить ссылку на личный разговор в контексте личного чата в базу данных

const conv = TurnContext.getConversationReference(context.activity);

использовать позже

await context.adapter.continueConversation(conv, async t => { await t.sendActivity('lol'); });

Будет ли эта ссылка работать вечно или идентификаторы будут временно? Вот как это выглядит в json:

{"activityId":"1","user":{"id":"2","name":"Testuser","aadObjectId":"4"},"bot":{"id":"2","name":"Testbot"},"conversation":{"conversationType":"personal","tenantId":"5","id":"6"},"channelId":"msteams","locale":"en-US","serviceUrl":"https://smba.trafficmanager.net/amer/"}

...