1

我有一个 Dialogflow 代理,我正在使用内联编辑器(由 Cloud Functions for 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);
        });
}
4

2 回答 2

6

您的代码看起来正确。这种情况下的例外情况可能是您没有使用付费帐户,因此 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);
        });
}

(如果您这样做,您可能希望使用日志中的确切错误更新您的问题。)

于 2018-11-27T11:39:47.540 回答
3

内联编辑器使用 Firebase。如果您没有 Firebase 付费帐户,您将无法访问外部 API。

于 2018-11-27T08:13:37.760 回答