如何使用 Spotify api 端点(下面包含 API 的 URL)播放我的 index.js 文件中的特定歌曲?

How do I use the Spotify api endpoint (the URL of the API is included below) to play a specific song from my index.js file?

我正在制作一个 Google 助手应用程序,其中 (1)。考虑用户的情绪,(2)。从具有相同情绪的预分析数据库中检索一首歌曲和 (3)。通过 Spotify 播放那首歌。

我已经完成了第 1 部分和第 2 部分,但正在努力学习第 3 部分。我在这里 ( https://developer.spotify.com/console/put-play ) 上找到 API 用于向播放特定歌曲或专辑的 Spotify 发送 POST 请求。如何将此信息转换为来自我的 index.js 文件的 POST 请求?

例如,如果我想 POST Red Hot Chili Peppers 的 Spotify 代码 "Suck My Kiss",发送 Spotify 曲目 ID 的代码会是什么样子?

3
    artist: 
      "Red Hot Chili Peppers"
    id: 
      "4"
    maxEmotion: 
      "anger"
    score: 
      "0.578864"
    song: 
      "Suck My Kiss"
    spotifyCode: 
      "spotify:track:0psB5QzGb4653K0uaPgEyh"

我试过使用 Webhook 格式,但不确定我是否理解正确的使用方法,而且这意味着我的整个 index.js 文件都没有用(因为你只能有一个或其他在 Google 助手上)。所以我很想知道如何在 index.js 文件中执行此操作(如果可能的话)?我在下面包含了最重要的代码:

'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 });   



  //4
    function playAngrySong (agent) {
    // Get the database collection 'dialogflow' and document 'agent'

    return admin.database().ref((`3`) ).once('value').then((snapshot)  => {
      const song = snapshot.child('song').val();
      const artist = snapshot.child('artist').val();

        agent.add(`I will play ${song} by ${artist}`);

// THIS IS WHERE I NEED THE POST TO THE SPOTIFY API

   });
  }

  // Map from Dialogflow intent names to functions to be run when the intent is matched
  let intentMap = new Map();
  intentMap.set('-Angry - yes', playAngrySong);
  agent.handleRequest(intentMap);
});

已解决:这是下面的代码(使用 Google 助理代理在播放前说 'Enjoy'):

function playMusic(agent){
    agent.add('Enjoy!');
    var request = require("request");

    var options = { method: 'PUT',
        url: 'https://api.spotify.com/v1/me/player/play',
        headers:
            { 'cache-control': 'no-cache,no-cache',
                'Content-Type': 'application/json',
                Authorization: `Bearer ${Access.accessToken}`,
                Accept: 'application/json' },
        body: { uris: [ `${SongInfo.Spotify_uri}` ] },
        json: true };

    request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log('This is the body of the play music request ' + body);
    });
}