Dialogflow函数:无法读取未定义的属性"client"

stk*_*flw 6 actions-on-google dialogflow-es

我终于让用户注册了这个云功能:

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

// Create an app instance

const app = dialogflow()

// Register handlers for Actions SDK intents

app.intent('test', conv => {
  conv.ask(new SignIn());
})

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)
Run Code Online (Sandbox Code Playgroud)

但就在那之后,我得到了同样的错误:

TypeError: Cannot read property 'client' of undefined
    at Function.<anonymous> (/user_code/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:120:71)
    at next (native)
    at /user_code/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:22:71
    at __awaiter (/user_code/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:18:12)
    at Function.handler (/user_code/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:84:16)
    at Object.<anonymous> (/user_code/node_modules/actions-on-google/dist/assistant.js:55:32)
    at next (native)
    at /user_code/node_modules/actions-on-google/dist/assistant.js:22:71
    at __awaiter (/user_code/node_modules/actions-on-google/dist/assistant.js:18:12)
    at standard (/user_code/node_modules/actions-on-google/dist/assistant.js:51:41)
Run Code Online (Sandbox Code Playgroud)

它甚至没有达到console.log('test'):

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

// Create an app instance

const app = dialogflow()

// Register handlers for Actions SDK intents

app.intent('test', conv => {
  console.log('test')
  conv.ask(`response`)
})

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)
Run Code Online (Sandbox Code Playgroud)

的package.json:

{
  "name": "dialogflowFirebaseFulfillment",
  "description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase",
  "version": "0.0.1",
  "private": true,
  "license": "Apache Version 2.0",
  "author": "Google Inc.",
  "engines": {
    "node": "~6.0"
  },
  "scripts": {
    "start": "firebase serve --only functions:dialogflowFirebaseFulfillment",
    "deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment"
  },
  "dependencies": {
    "actions-on-google": "2.1.3",
    "firebase-admin": "5.12.1",
    "firebase-functions": "1.0.3",
    "dialogflow": "0.5.0",
    "dialogflow-fulfillment": "0.4.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

abt*_*Exp 10

初始化您的应用时

const app = dialogflow();
Run Code Online (Sandbox Code Playgroud)

通过链接客户端ID的Google帐户传递您的操作对象

您的代码应如下所示:

const app = dialogflow({
   clientId : YOUR_APPS_CLIENT_ID
})
Run Code Online (Sandbox Code Playgroud)

这将解决此问题.

要获取YOUR_APPS_CLIENT_ID,请转到Google控制台上的操作,在左侧导航菜单上,在高级选项下,转到帐户关联并展开第三张卡以获取您的ID.

希望能帮助到你.

  • 这照顾了我的问题 - 谢谢! (3认同)