Я создаю действие диалогового потока Google, и оно работает нормально, если я имею дело с обычными вещами. Но мне нужно извлечь некоторые данные из URL-адреса, и как только я получаю данные с помощью async / await в своем намерении, код перестает работать, и я не могу определить, в чем заключается ошибка. Я борюсь с этим с 5 дней. Это серьезно сводит меня с ума, и, следовательно, я не могу завершить свое действие. Единственная ошибка, которую я получаю в консоли: MalformedResponse Не удалось проанализировать ответ Dialogflow в AppResponse из-за неверного ответа платформы: не удалось найти RichResponse или SystemIntent в ответе платформы для agentId: b71b73aa-854f-4979-a062-e7aedb906e04 и intentId: 80a4b104-26ba-4f9f-a717-4f65f7f1465d. WebhookStatus: код: 14 сообщение: «Вызов Webhook не выполнен. Ошибка: недоступен». ..
Ниже приведен код теста:
"use strict";
// Import the Dialogflow module and response creation dependencies
// from the Actions on Google client library.
const {
dialogflow,
BasicCard,
Permission,
Suggestions,
Carousel,
Image,
} = 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
});
const axios = require("axios");
const URL = "https://example.com/example.json"; //example URL
let confirmedCases;
let activeCases;
let recoveredCases;
let deathCases;
async function testIt() {
try {
const response = await axios.get(URL);
const result = response.data;
let data = result["data"];
let confirmedCases = data[0];
let activeCases = data[1];
let recoveredCases = data[2];
let deathCases = data[3];
console.log(String(confirmedCases));
} catch (error) {
console.log(error);
}
}
testIt(); //works fine in terminal (by running node index.js)
app.catch((conv, error) => {
console.error(error);
conv.ask(`I encountered a glitch. Can you say that again? ${error}`);
});
// Handle the Dialogflow intent named 'Default Welcome Intent'.
app.intent('Default Welcome Intent', async (conv) => {
try {
const response = await axios.get(URL);
const result = response.data;
let data = result["data"];
let confirmedCases = data[0];
let activeCases = data[1];
let recoveredCases = data[2];
let deathCases = data[3];
//console.log(typeof(String(confirmedCases)));
conv.ask(String(confirmedCases));
} catch (error) {
console.log(error);
}
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);