Как воспроизвести аудиофайл в диалоговом потоке с помощью функции firebase - PullRequest
3 голосов
/ 13 апреля 2019

У меня есть свой собственный сервер, на который загружается аудиофайл. www.theislam360.me: 8080 / hbd.mp3 Я хочу воспроизвести этот звук на Google Home, используя функции Firebase.

const functions = require('firebase-functions');
var request1 = require('request')
exports.webhook = functions.https.onRequest((request, response) => {

        console.log("request.body.result.parameters: ", request.body.result.parameters);

        let params = request.body.result.parameters;

        var options = {
            url: `https://theislam360.me/${params.any}`+".mp3",
            json:true
        }
        request1(options, function(error, res, body){
            if(error) response.send({speech: "error in API call"});
            else response.send({speech: "<speak>This is the audio <audio>www.theislam360.me:8080/hbd.mp3</audio></speak>"});
        });
    });

Я получаю внутреннюю ошибку сервера при выполнении диалогового потока. Вот журналы пожарной базы. enter image description here

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Это было так просто, как это

const functions = require('firebase-functions');

exports.webhook = functions.https.onRequest((request, response) => {
    response.send({speech:`<speak>Welcome to my action! <audio src="https://theislam360.me:8080/hbd.mp3"></audio> How can I help you?</speak>`})
});

Обратите внимание, что сервер должен быть https, аудиофайл хранится в.

2 голосов
/ 13 апреля 2019

Ошибка

Невозможно прочитать свойство "параметры" неопределенного

говорит вам, что request.body.result не определено, что означает, что нет свойства с именем "result"на объекте request.body.Попробуйте дважды проверить, что искомые параметры действительно находятся в объекте request.body.result.

...