Я довольно далеко со своим проектом по выбору песен на основе эмоций пользователя с помощью помощника Google.У меня есть код ниже, который обрабатывает выполнение, когда пользователь просит грустную песню.В настоящее время он проверяет базу данных на наличие песен с уровнем эмоций выше 0,5, а затем передает имя песни пользователю.
Мне интересно, как бы я тогда проиграл эту песню, используя API Spotify в качестве конечной точки.Кто-нибудь знает, как я мог бы сделать это в разделе выполнения моего приложения потока диалога?Я не видел ни одного примера в Интернете, поэтому я не знаю, возможно ли это вообще.Если нет, есть ли другой способ, который я могу использовать для воспроизведения песен с помощью помощника Google?
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const {WebhookClient} = require('dialogflow-fulfillment');
admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: 'ws://mood-magic-four-ptwvjb.firebaseio.com/'
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
function playSadSong (agent) {
// Get the database collection 'dialogflow' and document 'agent'
var randomNumber = Math.floor(Math.random() * 2) + 1;
return admin.database().ref(('`${randomNumber}`') ).once('value').then((snapshot) => {
const song = snapshot.child('song').val();
const artist = snapshot.child('artist').val();
if(song !== null && snapshot.child('sadness').val() > 0.5){
agent.add(`I will play ${song} by ${artist}`);
}
else {
agent.add(`I couldn't find anything right now...`);
}
});
}
// Map from Dialogflow intent names to functions to be run when the intent is matched
let intentMap = new Map();
intentMap.set('-Sad - yes', playSadSong);
agent.handleRequest(intentMap);
});