首页 > 解决方案 > 为 Google 助理使用 Actions SDK

问题描述

我正在尝试在我自己的服务器中使用 Actions SDK,我所做的操作显示在 Google Assistant 中,但它不起作用,助手只是关闭而没有显示任何错误。这是我的代码:

'use strict';

const express = require('express');
const bodyParser = require('body-parser');
var exps = express();
exps.use(bodyParser.json());

const {actionssdk} = require('actions-on-google');

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

  const asyncTask = () => new Promise(
    resolve => setTimeout(resolve, 1000)
  );

  exps.post('/', function(request, response) {
    app.intent('actions.intent.MAIN', (conv) => {
      return asyncTask()
      .then(() =>  conv.ask('Hi, this is a test!'));
    });
   
  });
express().use(bodyParser.json(), app).listen(3000);

请求和调试选项卡错误和响应都是空的。

标签: javascriptnode.jsexpressactions-on-google

解决方案


我认为问题在于您正在创建两个不同的快递对象。一个安装在“/”路径上,但未设置为侦听任何端口。另一个侦听端口,但没有设置任何路径供其处理。

将您的侦听器线路更改为

exps.use(bodyParser.json(), app).listen(3000);

将使您设置“/”路径的快速对象也将成为侦听端口的对象。

您的 webhook 似乎也在“/”路径上侦听,但您已在 actions.json 文件中指定 webhook 使用“/node/”路径。(阅读屏幕截图有点困难 - 这就是我们要求您发布文本而不是屏幕截图的原因。)如果您将 webhook 更改为收听“/node/”或将 actions.json 文件更改为使用'/',它应该工作。


推荐阅读