Я написал маленький файл js, который возвращает отправление общественного транспорта.Вот что я ожидаю:
const dvb = require("dvbjs");
dvb.findStop("NUP").then((data) => {
console.log( "Abfahrten für "+data[0].name+ " in " +data[0].city+":" );
dvb.monitor(data[0].id, 0, 1).then((data) => {
for (const bus of data){
console.log(bus.mode.title +" "+ bus.line+" Richtung "+bus.direction+ " in "+bus.arrivalTimeRelative+ " Minuten.")
}
});
});
Вывод на моей консоли выглядит следующим образом:
Abfahrten für Nürnberger Platz in Dresden:
Straßenbahn 8 Richtung Hellerau in 3 Minuten.
Это нормально.Теперь я изменил его, поэтому Google Assistant может читать выходные данные:
app.intent('Haltestellenabfrage', (conv, {haltestelle}) => {
//conv.ask("Debug 1");
dvb.findStop("NUP").then((data) => {
//conv.ask("Debug 2");
conv.ask( "Abfahrten für "+data[0].name+ " in " +data[0].city+":" );
dvb.monitor(data[0].id, 0, 1).then((data) => {
for (const bus of data){
//conv.ask("Debug 3");
conv.close(bus.mode.title +" "+ bus.line+" Richtung "+bus.direction+ " in "+bus.arrivalTimeRelative+ " Minuten.");
}
});
});
//conv.ask("Debug 3");
});
Когда я запускаю свое действие на Google в симуляторе, я получаю следующую ошибку и не получаю ответа:
{
"responseMetadata": {
"status": {
"code": 10,
"message": "Failed to parse Dialogflow response into AppResponse because of empty speech response",
"details": [
{
"@type": "type.googleapis.com/google.protobuf.Value",
"value": "{\"id\":\"bad774a2-9e35-4ced-980f-d4e75d710727\",\"timestamp\":\"2019-03-13T11:50:56.405Z\",\"lang\":\"de\",\"result\":{},\"alternateResult\":{},\"status\":{\"code\":206,\"errorType\":\"partial_content\",\"errorDetails\":\"Webhook call failed. Error: 500 Internal Server Error\"},\"sessionId\":\"ABwppHHpg1lcJFHtSSM8Pmg4gWWkjgICLeZhBuwFb_UJTXuvVyVc5jE5QWLIpGYRCQOHAVmHTzunZw\"}"
}
]
}
}
}
Что бы я ни делал, часть в предложении .then () никогда не выполняется Dialogflow.Я абсолютный новичок в javascript, поэтому я не знаю, что еще попробовать.