Connecting Google Home via webhook to node.js

2019-09-13 19:25发布

问题:

Im following this article:

https://medium.com/google-cloud/how-to-create-a-custom-private-google-home-action-260e2c512fc

and I get this when I run npm start in my folder on my mac for testing I get this:

Marcios-MacBook-Pro:webhook mars$ npm start

> your-action-app@0.0.1 start /Users/mars/Downloads/webhook
> functions deploy yourAction --trigger-http

sh: functions: command not found

npm ERR! Darwin 16.4.0
npm ERR! argv "/usr/local/Cellar/node/7.8.0/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v7.8.0
npm ERR! npm  v4.2.0
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! your-action-app@0.0.1 start: `functions deploy yourAction --trigger-http`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the your-action-app@0.0.1 start script 'functions deploy yourAction --trigger-http'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the your-action-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     functions deploy yourAction --trigger-http
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs your-action-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls your-action-app
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/mars/.npm/_logs/2017-04-12T14_32_03_870Z-debug.log

I created the action in Api.ai and I modified the package.json to:

{
  "name": "execute-home-command",
  "description": "This is your Action's webhook",
  "version": "0.0.1",
  "private": true,
  "license": "Apache Version 2.0",
  "author": "Google Inc.",
  "engines": {
    "node": "~6.0"
  },
  "scripts": {
    "lint": "semistandard --fix \"**/*.js\"",
    "start": "functions deploy execute-home-command --trigger-http",
    "deploy": "gcloud beta functions deploy execute-home-command --trigger-http --stage-bucket <storage_bucket_name>"
  },
  "dependencies": {
    "actions-on-google": "^1.0.0"
  },
  "devDependencies": {
    "semistandard": "^9.1.0"
  }
}

Here is the action:

回答1:

I guess you don't have npm package for functions-emulator installed.

try installing it by npm install -g @google-cloud/functions-emulator