Как получить внешние данные API с помощью встроенного редактора в диалоговом потоке - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть агент Dialogflow, для которого я использую Inline Editor (работает на Cloud Functions для Firebase).Когда я пытаюсь получить данные внешнего API с помощью request-promise-native, я получаю Ignoring exception from a finished function в моей консоли Firebase.

function video(agent) {
    agent.add(`You are now being handled by the productivity intent`);
    const url = "https://reqres.in/api/users?page=2";
    return request.get(url)
        .then(jsonBody => {
            var body = JSON.parse(jsonBody);
            agent.add(body.data[0].first_name)
            return Promise.resolve(agent);
        });
}

Ответы [ 2 ]

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

Ваш код выглядит правильно.Исключением в этом случае может быть то, что вы не используете платную учетную запись, поэтому доступ к сети за пределами Google заблокирован.Вероятно, вы можете увидеть точное исключение, добавив блок catch:

function video(agent) {
    agent.add(`You are now being handled by the productivity intent`);
    const url = "https://reqres.in/api/users?page=2";
    return request.get(url)
        .then(jsonBody => {
            var body = JSON.parse(jsonBody);
            agent.add(body.data[0].first_name)
            return Promise.resolve(agent);
        })
        .catch(err => {
            console.error('Problem making network call', err);
            agent.add('Unable to get result');
            return Promise.resolve(agent);
        });
}

(Если вы сделаете это, вы можете обновить свой вопрос с точной ошибкой из журналов.)

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

Встроенный редактор использует Firebase.Если у вас нет платной учетной записи в Firebase, вы не сможете получить доступ к внешним API.

...