【问题标题】:Error in fulfillment, cant access the entity values from google cloud platform执行错误,无法从谷歌云平台访问实体值
【发布时间】:2019-01-09 15:51:15
【问题描述】:

我正在尝试使用我创建 Google Cloud 的实体中的实现,但是即使部署中没有错误,当我测试时我也会遇到错误:

{
  "error": "Cannot read property 'Definicion' of undefined"
}

我附上带有云实体图片的链接enter image description here

这里也附上代码。

'use strict';


const functions = require ('firebase-functions');
const {dialogflow} = require ('actions-on-google');
// instantiate the object
const datastore_enfermedades = require('@google-cloud/datastore');
// instantiate a datastore client
const datastore = datastore_enfermedades ();


const WELCOME_INTENT = 'Default Welcome Intent';
const FALLBACK_INTENT = 'Default Fallback Intent';
const LOOKING_FOR_DISEASE_INTENT = 'InfoDisease';
const DISEASE_TYPE_ENTITY = 'TypeDisease';


const app = dialogflow ();

app.intent (WELCOME_INTENT, (conv) => {
    conv.ask('Hola! Si quieres puedo darte más información sobre alguna enfermedad, pregúntame!');
  });


app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask('Ai, no te he entendido, ¿puedes repetirmelo por favor?');
  });

const disease1 = datastore.createQuery('Tabla de enfermedades').filter('Enfermedad', '=','artritis');
app.intent(LOOKING_FOR_DISEASE_INTENT, (conv) => {
    const disease_type = conv.parameters[DISEASE_TYPE_ENTITY].toLowerCase();
    if (disease_type == "artritis") {
        return datastore.runQuery(disease1).then(results => {
            conv.ask(results[0][1].Definicion);
        });
    } else {
        conv.ask("Puedes repetirlo por favor?");
    }
});


 exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

【问题讨论】:

    标签: javascript google-cloud-datastore dialogflow-es actions-on-google google-home


    【解决方案1】:

    这似乎与通过履行处理它没有任何关系。

    问题似乎是results[0][1] 未定义。由于RunQueryResponseresults[0] 中,这表明您可能需要检查results[0] 以查看您实际返回的内容以及您打算使用哪些值。

    您可以致电console.log(results[0])查看。

    【讨论】:

    • 再次感谢您对我的帮助!我对这整件事有点陌生,你能告诉我如何检查结果[0]?谢谢!!
    • 好的,谢谢,这是结果[1],但现在错误是 { "error": "Cannot read property 'simpleResponse' of undefined" } 你知道 simpleResponse 在哪里吗?因为我找不到它
    • 当我在谷歌上尝试 ni 操作时,错误是:{ "responseMetadata": { "status": { "code": 10, "message": "Failed to parse Dialogflow response into AppResponse because空语音响应”,“详细信息”:[ {“@type”:“type.googleapis.com/google.protobuf.Value”,“值”:“{\”id\”:\“0783191e-da98-40d2 -9da4-1b3df7dd8ce7\",\"timestamp\":\"2019-01-14T09:44:07.188Z\",\"lang\":\"es-es\",\"result\":{} ,\"alternateResult\":{},\"status\":{\"code\":206,\"errorType\":\"partial_content\",\"errorDetails\":\"Webhook 调用失败。错误:500...
    • 请不要尝试将代码或错误放入 cmets - 它们很难阅读。使用您看到的最新代码和错误更新您的原始问题。
    猜你喜欢
    • 2018-05-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2017-10-06
    相关资源
    最近更新 更多