Как проверить http-запрос на выполнение Dialogflow с помощью встроенного редактора - PullRequest
0 голосов
/ 24 августа 2018

Я тестирую выполнение Dialogflow с помощью встроенного редактора.То, что я пытаюсь сделать, - это http-запрос с использованием библиотеки que 'request'.Вот код, который я использую:

const requesthttp = require('request');

requesthttp('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', { json: true }, (err, res, body) => {
    if (err) { return console.log(err); }
    console.log(body.url);
    console.log(body.explanation);
});

Но он возвращает мне ошибку не найден.

Я также заметил предупреждение в моем диалоге со следующим сообщением:

"Платежная учетная запись не настроена. Внешняя сеть недоступна, а квоты строго ограничены. Настройте платежную учетную запись, чтобы снять эти ограничения."

Итак ... Возможно, я не могу протестировать этот фрагмент кода без настройкиплатежный аккаунт.

Мой вопрос ... Есть ли URL, который я могу использовать для проверки этого кода?Или единственный способ проверить этот код - настроить платежный аккаунт и оплатить его?

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 24 августа 2018

Существует несколько подходов к тестированию вашего кода.

  • Если вы хотите продолжить использовать встроенный редактор Dialogflow, вам необходимо настроить Firebase для использования плана платежей.Тем не менее, план Blaze - это «оплата по мере поступления» после базового уровня использования.Этот уровень использования должен быть достаточным, чтобы покрыть большинство тестовых (и даже очень легких) применений сервиса без взимания платы.После того, как ваше действие будет одобрено, вы сможете получать кредиты для Google Cloud Platform, которые могут применяться к этому использованию в случае превышения минимального уровня.

  • Вы можететакже используйте Firebase Cloud Functions, на которых основан встроенный редактор, и свой собственный локальный редактор.Одним из преимуществ этого является то, что вы можете обслуживать функцию локально, которая имеет многие из тех же функций, что и ее развертывание, но не имеет ограничения URL (в конце концов, это ваш собственный компьютер).Вы можете использовать такой инструмент, как ngrok , чтобы создать безопасный туннель для вашей машины во время тестирования.После того, как вы проверили, вы можете развернуть его в Firebase с платным планом.

  • Конечно, вы можете выбрать любой другой метод хостинга, какой пожелаете.Google и Dialogflow позволяют вам запускать веб-крючок выполнения на любом сервере, если этот сервер может предоставить HTTPS-соединение с использованием действительного, неподписанного сертификата.Если вы используете node.js, вы можете продолжать использовать эти библиотеки.Если вы хотите использовать другой язык, вам нужно будет проанализировать и вернуть JSON, но в противном случае у вас нет никаких ограничений.

0 голосов
/ 18 мая 2019

Поскольку DF использует облачные функции Firebase, вы можете использовать https как в nodejs.Но для запроса доменов за пределами вселенной google / firebase потребуется платная версия firebase.

const https = require('https');

return new Promise((resolve, reject) => {
        const hostname = info.hostname;
        const pathname = info.pathname;
        let data = '';
        const request = https.get(`https://${hostname}${pathname}`, (res) => {
            res.on('data', (d) => {
                data += d;
            });
            res.on('end', resolve);
        });
        request.on('error', reject);
    });
0 голосов
/ 24 августа 2018

Существует множество способов создать свой собственный сервер, например, использовать клиент NodeJS с Express.JS, который вы можете открыть в Интернете, используя NGROK в качестве веб-крюка для выполнения.

Начните со следующего кода для Actions-on-Google с Express.JS

'use strict';

const {dialogflow} = require('actions-on-google');
const express = require('express');
const bodyParser = require('body-parser');

const app = dialogflow();

app.intent('Default Welcome Intent', conv => {
    conv.ask('Hi, Welcome to Assistant by Express JS ');
});

express().use(bodyParser.json(), app).listen(8080);
...