Я использую botbuilder для написания бота MS Teams с Node / TypeScript. И я должен отправлять личное сообщение, когда кто-то отправляет текст боту в канале.
context.sendActivity(...)
отправляет сообщение в качестве ответа.
Но мне нужно отправить сообщение пользователю в личном чате 1: 1 с моим ботом. Этот context.activity не содержит идентификатора личного разговора. Как это сделать?
UPD: Я нашел возможное решение, но не уверен, что оно будет работать в перспективе.
- сохранить ссылку на личный разговор в контексте личного чата в базу данных
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/"}