TurnContext.getConversationReference: недостающая информация

#botframework #microsoft-teams

#botframework #microsoft-команды

Вопрос:

Я пишу бота, используя библиотеку npm botbuilder. Я хочу использовать proactive-messages для отправки уведомлений пользователю в окне личного чата.

Используя следующий код для извлечения ссылки на диалог:

 const conversationRef: Partial<ConversationReference> = TurnContext.getConversationReference(activity);
  

Теперь, когда я пытаюсь использовать ссылочный объект, возвращенный выше, в качестве аргумента в следующей функции:

 await adapter.continueConversation(convReference, async turnContext => {
        // If you encounter permission-related errors when sending this message, see
        // https://aka.ms/BotTrustServiceUrl
        await turnContext.sendActivity('This is a proactive notification');
    });
  

Я получаю следующую ошибку:

ошибка TS2741: свойство ‘name’ отсутствует в типе ‘{ id: string; aadObjectId: string; }’, но требуется в типе ‘ChannelAccount’.

Неправильно ли пытаться отправлять упреждающие уведомления в личный чат? Или есть обходной путь для этого.

Я использую npm botbuilder V4.10.4

Комментарии:

1. ОБНОВЛЕНИЕ — я только что добавил @ts-ignore инструкцию выше adapter.continueConversation и не столкнулся с проблемами во время выполнения.

2. Вам необходимо использовать словарь зависимостей для хранения объектов ConversationReference, используемых в NotifyController, чтобы активно отправлять сообщения пользователям. Не могли бы вы, пожалуйста, проверить эти документы . Не могли бы вы, пожалуйста, проверить этот код на наличие упреждающего сообщения ? Попробуйте, если это поможет.

3. @Nikitha-MSFT — моя проблема не в том, где хранить ссылки, я храню их в Cosmos. Однако в объектах, возвращаемых TurnContext.getConversationReference(activity), отсутствуют некоторые поля, которые являются обязательными в соответствии с файлом Typescript typings для ConversationReference (конкретные поля упомянуты в моем вопросе). Однако даже с этими отсутствующими полями уведомления работают нормально. Итак, я просто отключил проверку типов с помощью ts-ignore, и это сработало нормально.