В настоящее время я использую OAuthPrompt в Microsfot BotBuilder V4 NodeJs SDK. OAuthPrompt в основном используется для аутентификации ботов с помощью Azure, но после входа в систему с помощью лазера через бота я не могу перейти к следующей функции в диалоговом окне водопада, пока не отправлю другому сообщению боту. Если я отправляю сообщение после входа в систему, вызывается continueDialog (), поэтому вызывается следующая функция в диалоговом окне водопада.
Как автоматически перейти к следующей функции в диалоговом окне водопада, не отправляя еще одно сообщение боту?
/**
* Waterfall step that prompts the user to login if they have not already or their token has expired.
* @param {WaterfallStepContext} step
*/
async oauthPrompt(step: any) {
await step.prompt(OAUTH_PROMPT);
}
/**
* Waterfall step that informs the user that they are logged in and asks
* the user if they would like to see their token via a prompt
* @param {WaterfallStepContext} step
*/
async loginResults(step: any) {
let tokenResponse = step.result;
if (tokenResponse != null) {
await step.context.sendActivity('You are now logged in.');
return await step.prompt(CONFIRM_PROMPT, 'Do you want to view your token?', ['yes', 'no']);
}
// Something went wrong, inform the user they were not logged in
await step.context.sendActivity('Login was not sucessful please try again');
return await step.endDialog();
}
После вызова oauthPrompt () карточка входа отображается в боте. Но после этого функция loginResults () не вызывается автоматически, пока я не отправлю другое сообщение. Обе функции находятся в одном и том же диалоговом окне с водопадом?
Может кто-нибудь сказать мне, как вызвать loginResults без отправки другого сообщения боту, пожалуйста?