Google Actions SDK: использование стороннего сервера для создания шаблонных ответов - PullRequest
0 голосов
/ 11 марта 2019

Мой проект Google Actions указывает на функцию Google Cloud как веб-крючок. В облачной функции Google я могу создавать ответы на беседы, используя conv.ask(...).

Тем не менее, я пытаюсь сделать следующее: создать общую структуру контента для разговора, которая находится на другом сервере (также в облачной функции Google) , где я хотел бы составить ответ и отправить его обратно функция webhook.

Соответствующий код на обоих этих серверах выглядит так:

// in the webhook function

app.intent('actions.intent.MAIN', (conv, input) => {
    // here I would like to call the second google function by
    // passing, say, the input and receiving a response that can
    // be passed on to the conv
    // something like 
    // assume request-promise is being used
    //
    var options = {
      method: 'POST',
      uri: '..',
      body: {...},
      json: true
    };
    rp(options)
     .then(resp => {
       conv.ask(resp) // this is what I would like to do
     });
 });

На втором сервере Google Functions я использую экспресс в качестве промежуточного программного обеспечения. Здесь по некоторым логическим шаблонным ответам строятся

const .. 
const {
  SimpleResponse,
  BasicCard,
  ...
} = require('actions-on-google');
...
const express = require('express');
var app = express();
...
app.post('/main', function(req, res, next) {
  // here I would like to compose the response 
  // and send it to the earlier function
  var convresp = new SimpleResponse({...});
  ..
  res.send(convresp);  
  // this seems to be only sending the json 
  // and causes the receiving response to give an error
  // when applying to conv.ask in the above code
});

Вопрос: как отправить ответ из второй функции, чтобы его можно было «вставить» в функциональность conv.ask в первой функции? Спасибо

...