我正在尝试使用动作SDK开发Google助手应用。我在网上发现了许多示例,所有示例都使用Google的firebase云功能进行部署。 通过此链接(https://actions-on-google.github.io/actions-on-google-nodejs/,我还发现可以将动作sdk函数部署到aws lambda中。 但不幸的是,我没有找到任何示例来说明如何将aSDK编写和部署到SDK中。
有人可以帮助我编写类似于此处显示的应用程序(https://github.com/actions-on-google/actionssdk-say-number-nodejs)并将其部署到aws lambda吗?
我尝试了以下操作。但这没有用。
这是index.js文件中的代码
'use strict';
const {actionssdk, SimpleResponse} = require('actions-on-google');
const app = actionssdk({debug: true});
app.intent('actions.intent.MAIN', (conv) => {
conv.ask("welcome");
});
app.intent('actions.intent.TEXT', async (conv, input) => {
conv.ask('You said ' + input);
});
exports.fulfillment = app
这是来自AWS的云监视日志
2018-11-10T08:35:46.715Z 9dbb17f8-e4c3-11e8-bce3-730a5244a300
{
"errorMessage": "Cannot convert undefined or null to object",
"errorType": "TypeError",
"stackTrace": [
"Function.keys (<anonymous>)",
"Lambda.<anonymous> (/var/task/node_modules/actions-on-google/dist/framework/lambda.js:36:36)",
"Generator.next (<anonymous>)",
"/var/task/node_modules/actions-on-google/dist/framework/lambda.js:22:71",
"new Promise (<anonymous>)",
"__awaiter (/var/task/node_modules/actions-on-google/dist/framework/lambda.js:18:12)",
"/var/task/node_modules/actions-on-google/dist/framework/lambda.js:30:46",
"omni (/var/task/node_modules/actions-on-google/dist/assistant.js:44:53)"
]
}
答案 0 :(得分:1)
将代码托管在AWS上的代码更改非常简单。无需导入firebase-functions库并使用它,您只需要使用dialogflow应用本身来建立lambda端点即可。因此,代码可能类似于:
const { dialogflow } = require('actions-on-google')
const app = dialogflow()
// Setup intent handlers with app.intent() here
exports.factsAboutGoogle = app