Я пытаюсь позволить людям войти в мое действие Google. Нашел пример кода, попробовал, но я не могу заставить его работать. Signin.status не определен в журналах.
Что я делаю не так?
'use strict';
const {dialogflow, Carousel, BrowseCarousel, BrowseCarouselItem,
Image, SimpleResponse, Confirmation, Option, option, Suggestions,
SignIn} = require('actions-on-google');
const functions = require('firebase-functions');
const app = dialogflow({
clientId: '<MYCLIENTID>',
});
//-----------------------INTENT 0: WELCOME -------------------------------------------
app.intent("Default Welcome Intent", (conv, input) => {
conv.add('Welcome. Sign in? ')
})
//-----------------------INTENT 1: Welcome -> yes -------------------------------------------
app.intent('actions.intent.MAIN', conv => {
conv.add(new SignIn('To get your data.'))
})
//-----------------------INTENT 2: LINKING CHECK -------------------------------------------
app.intent("Linking Check", (conv, params, signin) => {
console.log(signin + ' ' + signin.status )
if (signin.status !== 'OK') {
conv.close('It's not possible to use this app without signing in. Goodbye!');
} else {
const payload = conv.user.profile.payload;
conv.add(`I got your account details, ${payload.name}. What do you want to do next?`);
}
})
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
Я бы ожидал нормально работающего потока входа. Но вместо этого помощник не разрешает мне войти в намерение 1, но повторяет намерение 0 после ответа «да» на приветственное намерение.
Если я вызываю намерение 2, оно предоставляет мне: «Невозможно использовать это приложение без входа в систему. До свидания!», Поэтому signin.status не «OK».
В логах указывается signin.status, если «undefined».
Изображения:
Обзор
Намерение 0
Намерение 1
Намерение 2