【问题标题】:dialog flow v2 code not running对话流 v2 代码未运行
【发布时间】:2018-04-26 19:13:10
【问题描述】:

我正在根据 v2 测试新代码。链接:Build Your First App with Dialogflow 代码:

'use strict';

const {dialogflow} = require('actions-on-google');
const functions = require('firebase-functions');

const app = dialogflow({debug: true});

app.intent('Default Welcome Intent', conv => {
  console.log("-----welcome intent-----");
  conv.ask('Welcome');
});

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

但是当我模拟它时,它显示:

MalformedResponse
'final_response' must be set.

我能做什么? 尽管启用了 Fulfillment,但请求未到达函数。

---------已更新------------

现在当我尝试将函数部署到 firebase 时出现此错误:

Function load error: Code in file index.js can't be loaded
Is there a syntax error in your code?
Detailed stack trace: TypeError: dialogflow is not a funct
    at Object.<anonymous> (/user_code/index.js:6:13)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at getUserFunction (/var/tmp/worker/worker.js:388:24)
    at loadUserCode (/var/tmp/worker/worker.js:444:18)

我看不懂???

这是我的 package.json:

{
  "name": "some name",
  "description": "some desc",
  "version": "0.0.1",
  "author": "Google Inc.",
  "engines": {
    "node": "~4.2"
  },
  "dependencies": {
    "actions-on-google": "^1.0.0",
    "firebase-admin": "^5.11.0",
    "firebase-functions": "^1.0.0",
    "dialogflow": "^0.3.0",
    "request": "^2.85.0",
    "uuid": "^3.0.1"
  }
}

-----更新2------ 我已将节点更改为:

"engines": {
        "node": "~6.0"

还是一样的问题

-----更新 3--------

部署完成,但是当请求转到它时,它显示:

【问题讨论】:

    标签: webhooks actions-on-google dialogflow-es


    【解决方案1】:

    确认您使用的是哪个版本的 actions-on-google 库。 "actions-on-google": "^1.0.0" 的依赖项指定了库的 1.x 版本,但其余的使用是通过 2.0.0 语法。该错误提示没有dialogflow对象,该库的版本2中也提供了该对象,但版本1中没有。

    要使用 2.0.0 及更高版本,您需要将 package.json 中的行更改为

    "actions-on-google": "^2.0.0"
    

    然后运行

    npm update
    

    【讨论】:

      【解决方案2】:

      检查您使用的节点版本。 package.json 建议您使用节点 4,如果您使用 =&gt;,则至少需要使用节点 6。

      由于 Firebase Cloud Functions 也是节点 6,因此您也应该切换到它以进行本地开发。 (对于 LTS,Node 本身是第 8 版,并且正在使用第 9 版,因此您当然应该考虑更新。)

      【讨论】:

      • 我正在使用节点 v9.11.1
      【解决方案3】:

      确保 fulfillment 在 Dialogflow 控制面板中启用,并且 API 的 v2打开?还要检查您在履行中使用的意图名称是否与 Dialogflow 中的一致。

      您的代码对我来说看起来不错。可能是配置问题。

      【讨论】:

      • 所有设置都已设置,但无法正常工作,现在我收到新错误
      【解决方案4】:

      尝试将conv.ask('Welcome') 更改为conv.close('Welcome');

      同时删除 console.log("-----welcome intent-----"); 行,仅用于测试

      【讨论】:

        【解决方案5】:

        更改了 package.json:

        "engines": {
            "node": "~6.11.1"
          },
          "dependencies": {
            "actions-on-google": "^2.0.0",
            "firebase-admin": "^5.11.0",
            "firebase-functions": "^1.0.0",
            "dialogflow": "^0.3.0",
            "request": "^2.85.0",
            "uuid": "^3.0.1"
          }
        

        这行得通

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-30
          • 2019-11-23
          • 1970-01-01
          • 2019-01-16
          • 1970-01-01
          • 2017-06-20
          • 2012-07-03
          • 1970-01-01
          相关资源
          最近更新 更多