Ниже представлена структура моего чат-бота.
Цель 1 (результат): Здесь пользователь запросит результат. Он выполнит привязку учетной записи и проверит регистрацию идентификатора электронной почты на своем сервере, независимо от того, зарегистрирован он или нет через API, и покажет результат.
app.intent('result', (conv,{date})=>{
var userDate = date;
var apiUserEmailID= conv.data.apiUserEmailID;
var apiUserKey= conv.data.apiUserKey;
console.log("apiUserKey : "+apiUserKey);
if (typeof (apiUserKey) == "undefined" || apiUserKey == "" || apiUserKey == null)
{
conv.ask(new SignIn('To get your account details'));// Intent that starts the account linking flow.
}
else
{
conv.ask("Welcome to quote generator"+userDate+" Session : "+apiUserKey);
**//Flow should come here when ask for the next time after Google account linking**
}
});
app.intent('user_Login', (conv, params, signin) => {// Create a Dialogflow intent with the `actions_intent_SIGN_IN` event.
if (signin.status === 'OK')
{
const payload = conv.user.profile.payload;
conv.data.apiUserEmailID=payload.email; //Session Creation
var url = apiPathAJ+'/CheckAccess?uid=payload.email';
var login_response="",login_Userkey="";
return getaxiosURL(url).then(response => {
response.data.map(loginObj=>{
if(loginObj.Status=="TRUE")
{login_response = "1";
login_Userkey=loginObj.UserKey;}
else
{login_response = "0";
login_Userkey="0";}
});
if(login_response=="1")
{
conv.data.apiUserKey=login_Userkey;
conv.ask("You are a registered User with Our Service. Here is your result *******");
}
else
{
conv.ask("You are not a registered User. Would you like to proceed with the Service registration.");
}
}).catch (error => {
login_response="2";
console.log("Something is wrong in login_response("+login_response+") !! " + error);
});
}
else
{
conv.ask(`I won't be able to save your data, but what do you want to do next?`);
}
});
Ниже приведен пример разговора.
Пользователь: Я хочу увидеть свой результат за 25 июня 2019 г.
ChatBot: ..... (Будет запрошена привязка учетной записи)
Пользователь: Да
Чат-бот: вы являетесь зарегистрированным пользователем нашего Сервиса.
Пользователь: Я хочу увидеть свой результат на 25 июня 2019 г.
Другой пример разговора.
Пользователь: Я хочу увидеть свой результат для 25 июня 2019 г.
ChatBot: ..... (он запросит привязку учетной записи)
User: Нет
ChatBot: Я не смогу сохранить ваши данные, но что вы хотите делать дальше?
Пользователь: Я хочу увидеть свой результат за 25 июня 2019 г.
В обоих разговорах, если пользователь задаст один и тот же вопрос (последний комментарий пользователя) или мы можем его сказать попадает в намерение (результат), я получаю это исключение, и диалог существует.
Ошибка: Dialogflow IntentHandler не найден для намерения: user_Login-result в функции. (/srv/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:141:31) в Generator.next () при выполнении (/ srv / node_modules / actions-on-google / dist / service / dialogflow / dialogflow. js: 19: 58) по адресу process._tickDomainCallback (internal / process / next_tick. js: 229: 7)