Используйте Actions SDK для Google Assistant - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь использовать 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);

Вкладки "Запрос" и "Отладка" Пустые и ошибки, и ответ.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я думаю, проблема в том, что вы создаете два разных экспресс-объекта.Один подключается по пути '/', но не настроен для прослушивания на любом порту.Другой прослушивает порт, но для него не настроены какие-либо пути.

Изменение строки слушателя на

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

сделает его таким экспресс-объектом, где вы 'Мы настроили путь '/', который также будет прослушивать порт.

Также кажется, что ваш webhook прослушивает путь '/', но вы указали webhook в вашем actions.jsonфайл, используя путь '/ node /'.(Немного сложно прочитать снимок экрана - именно поэтому мы просим вас опубликовать текст, а не снимок экрана.) Если вы либо измените свой webhook для прослушивания «/ node /», либо измените файл actions.json наиспользуйте '/', оно должно работать.

0 голосов
/ 19 ноября 2018

Глядя на документацию (https://developers.google.com/actions/assistant/responses), можно предположить, что вы пытаетесь неправильно вызвать conv.ask (). Я думаю, вам понадобится что-то вроде этого:

conv.ask(new SimpleResponse({speech: 'Hi, this is a test!', text: 'Hi, this is a test!'}));
...