Выполнение диалога не работает - почему? - PullRequest
2 голосов
/ 05 февраля 2020

Я использовал выполнение диалогового потока для получения данных из внешнего API. Работает нормально с тестовой консолью. Но при развертывании в приложении android он дает пустой ответ. Как я могу это исправить? Спасибо.

Код в исполнении:

'use strict';
const axios = require('axios');
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
  console.log('Dialogflow Request body: ' + JSON.stringify(request.body));

  function welcome(agent) {
    agent.add(`Welcome to my agent!`);
  }

  function fallback(agent) {
    agent.add(`I didn't understand`);
    agent.add(`I'm sorry, can you try again?`);
  }

function rhymingWordHandler(agent){
  const word = agent.parameters.word;
    agent.add(`Here are the rhyming words for ${word}`);
    return axios.get(`https://api.datamuse.com/words?rel_rhy=${word}`)
    .then((result) => {
        result.data.map(wordObj => {
            agent.add(wordObj.word);
        });
    });
}

  let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  intentMap.set('Rhyme Scheme', rhymingWordHandler);
  agent.handleRequest(intentMap);
});

Код в MainActivity. java

public void callback(AIResponse aiResponse) {
        if (aiResponse != null) {
            // process aiResponse here
            String botReply = aiResponse.getResult().getFulfillment().getSpeech();
            Log.d(TAG, "Bot Reply: " + botReply);
            showTextView(botReply, BOT);
        } else {
            Log.d(TAG, "Bot Reply: Null");
            showTextView("There was some communication issue. Please Try again!", BOT);

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...