Я пытаюсь пройти учебник по кодовым меткам для Google Actions и столкнулся с некоторыми проблемами. Я нахожусь на "Построить Действия для Помощника (Уровень 2)".
Когда я пытаюсь протестировать действие в симуляторе, я получаю сообщение «Мое тестовое приложение не отвечает прямо сейчас. Попытайтесь еще раз в ближайшее время».
На вкладках запроса или ответа ничего нет. Вот вывод на вкладке отладки:
{
"response": "My test app isn't responding right now. Try again soon.",
"expectUserResponse": false,
"conversationToken": "EvwCS2o5Wk...",
"audioResponse": "//NExAASeH...",
"ssmlMarkList": [],
"debugInfo": {
"sharedDebugInfoList": []
},
"visualResponse": {
"visualElementsList": [
{
"displayText": {
"content": "My test app isn't responding right now. Try again soon."
}
}
],
"suggestionsList": [],
"agentLogoUrl": ""
},
"clientError": 0,
"is3pResponse": true,
"clientOperationList": [],
"projectName": ""
}
Мой код:
'use strict';
// Import the Dialogflow module from the Actions on Google client library.
const {
dialogflow,
Permission,
Suggestions,
} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
// Handle the Dialogflow intent named 'favorite color'.
// The intent collects a parameter named 'color'.
app.intent('favorite color', (conv, {color}) => {
const luckyNumber = color.length;
// Respond with the user's lucky number and end the conversation.
if (conv.data.userName) {
conv.close(`${conv.data.userName}, your lucky number is ${luckyNumber}.`);
} else {
conv.close(`Your lucky number is ${luckyNumber}.`);
};
});
app.intent('Default Welcome Intent', (conv) => {
const options = {
context: 'Hi there, to get to know you better',
permissions: ['NAME'],
};
conv.ask(new Permission(options));
});
// Handle the Dialogflow intent named 'actions_intent_PERMISSION'. If user
// agreed to PERMISSION prompt, then boolean value 'permissionGranted' is true.
app.intent('ask permission', (conv, params, permissionGranted) => {
// If they didn't give me permission to use their name...
const options = ['Blue', 'Red', 'Green'];
if (!permissionGranted) {
conv.ask("Ok, no worries. What\'s your favorite color?");
conv.ask(new Suggestions(options));
} else {
// Otherwise, they gave me permission to use it
conv.data.userName = conv.user.name.display;
conv.ask(`Thanks, ${conv.data.userName}. What's your favorite color?`);
conv.ask(new Suggestions(options));
};
});
// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
На вкладке "Ошибка" также ничего нет. Я попытался найти значение clientError: 0
, чтобы понять, помогает ли это безрезультатно. Я также пытался найти ошибку MalformedResponse, но не получаю много полезной информации.
Я пробовал все виды перемещения кода или переписывания его, и ничего не менялось в сообщении об ошибке. Я понятия не имею, почему он ломается.
Журналы здесь (https://console.cloud.google.com) для этого действия говорят:
MalformedResponse: ErrorId: a5421d80-def5-42ef-ba55-8ac95a879e14. Failed to parse Dialogflow response into AppResponse because of invalid platform response. : Could not find a RichResponse or SystemIntent in the platform response for agentId: 6edfe023-05da-4726-9ee7-6469f0a5fb3d and intentId: 8ad48133-dd71-496c-b5af-d4ec19e88309
Я пытался найти это и не могу найти много полезной информации об этом.
Еще одна вещь, которую я заметил, - журналы для этой функции в https://console.firebase.google.com, похоже, не обновляются. Последний журнал у меня на 6/2, когда функция впервые сломалась. Я понятия не имею, почему это не будет обновляться. Если я запусту firebase functions:log
, у меня появятся более свежие записи, которые выглядят так:
2019-06-16T22:20:20.246Z I :
2019-06-16T22:20:21.895Z N dialogflowFirebaseFulfillment:
2019-06-16T22:21:01.674Z N dialogflowFirebaseFulfillment:
2019-06-16T22:27:45.629Z I :
2019-06-16T22:27:47.249Z N dialogflowFirebaseFulfillment:
2019-06-16T22:28:15.351Z N dialogflowFirebaseFulfillment:
2019-06-16T22:59:06.793Z I :
2019-06-16T22:59:08.488Z N dialogflowFirebaseFulfillment:
2019-06-16T22:59:49Z N dialogflowFirebaseFulfillment:
В какой-то момент в этих журналах появилось сообщение "Undefined" рядом с dialogflowFirebaseFulfillment:
, но что-то изменилось, и я не знаю, что.
Любая помощь будет принята с благодарностью, поскольку я исчерпал все возможные варианты на данный момент.