Требуется ли обновление Azure Bot Service SDK? (узел) - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь перевести мой v3 Azure Bot Service (npm botbuilder) в v4, однако все учебные пособия или документация содержат restify, тогда как v3 этого не сделал.

Это строгий требование? Или у кого-нибудь есть примеры без restify?

Если да, кто-нибудь знает, почему это требуется?

В настоящее время я пытаюсь работать с проактивными сообщениями из функции azure приложение.

V3: https://docs.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-proactive-messages?view=azure-bot-service-3.0

V4: https://docs.microsoft.com/en-gb/azure/bot-service/bot-builder-howto-proactive-message?view=azure-bot-service-4.0&tabs=javascript

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Согласно документации для v3, она указана ниже:

Логи разговора c для вашего бота размещаются в виде веб-службы. Bot Framework SDK использует restify , популярный фреймворк для создания веб-сервисов, для создания веб-сервера бота. SDK также совместим с Express, и использование некоторых каркасов веб-приложений возможно с некоторой адаптацией.

Кроме того, для проактивных сообщений от функций azure приложение, см. этот вопрос переполнения стека, в котором содержится информация о привязке для функции azure, которая будет запускаться через каждые x минут.

Надеюсь, это поможет.

1 голос
/ 12 марта 2020

Не обязательно использовать restify или express в Bot Framework SDK v4. Любая платформа веб-сервера, в которой используется аналогичный объект WebRequest и WebResponse, совместима с платформой Bot Framework.

Azure Функции можно использовать без каких-либо изменений. Вы создаете httpTrigger прослушивание POST-запросов. Внутри httpTrigger вы вызываете adapter.processActivity точно так же, как вы это делаете в «обычном» боте.

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {

    adapter.processActivity(req as any, context.res as any, async (context) => {
        // Route to main dialog.
        await myBot.run(context);
    });

};

В настоящее время вы должны приводить объект WebRequest как any при использовании Typescript и Azure Функции (или создание слоя подкладки), но это будет решено в 4.9 в соответствии с этим открытым запросом на извлечение .

Для отправки проактивных уведомлений вам не нужно даже не нужен этот подход. Я создал пример проактивной функции для Bot Framework SDK v4 в ваш аналогичный вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...