javascript - 在 Spotify API Javascript 中搜索轨道 + 添加到服务器

标签 javascript json spotify

我正在 web2py 和 vue.js 上构建一个 Web 应用程序,它可以理想地搜索 Spotify 歌曲、列出结果,并让我将选定的结果添加到存储在我的服务器上的播放列表中。

我目前正试图实现 Spotify 搜索功能。他们的文档不是很详尽,我只是一个初学者。

  1. 我希望能够在搜索中输入任何内容(播放按钮、轨道标题、艺术家或专辑),获取结果列表并将其显示在我网站上的表格上(标题、艺术家、专辑) 、专辑封面、持续时间等)。我不知道 Spotify API 上的哪些函数可以用来完成此任务。

  2. 列出结果后,我希望能够选择一首歌曲并将其添加到存储在服务器中的播放列表中。我知道如何执行 POST 请求并将项目添加到数据库,但我不知道如何从列表中选择特定结果并将其信息以 JSON 格式发送到我的服务器。我想我不明白歌曲表上的每一行如何链接到可以传递到服务器的特定 JSON 对象。

最佳答案

这是获取 Linkin Park 的 Numb 轨道信息的示例。所以现在您所要做的就是将所有这些命令翻译为 Javascript,与 ajax 或

一起使用

第 1 步:获取轨道 ID

curl -X GET "https://api.spotify.com/v1/search?q=track%3Anumb+artist%3Alinkin+park&type=track" -H "Accept: application/json"

//Javascript
$.get( "https://api.spotify.com/v1/search?q=track%3Anumb+artist%3Alinkin+park&type=track", 
    function( data ) {
        console.log(data);  
    });

第 2 步:获取访问 token

curl H "Authorization: Basic YOUR_CLIENT_CREDENTIALS" -d grant_type=client_credentials https://accounts.spotify.com/api/token

YOUR_CLIENT_CREDENTIALS 是您的ClientId:ClientSecret,您可以使用此函数获取它:

btoa('YOUR_CLIENT_ID:YOUR_CLIENT_SECRET')

做ajax请求实际上有点棘手,Spotify实际上希望你在服务器端做,我建议你引用这个链接:

Access-Control-Allow-Origin denied spotify api

第 3 步:获取音频功能

curl -X GET "https://api.spotify.com/v1/audio-features/YOUR_TRACK_ID" -H "Authorization: Bearer {YOUR_Access-TOKEN}"

假设轨道 ID 为 2nLtzopw4rPReszdYBJU6h:

$.ajax({
   url: 'https://api.spotify.com/v1/audio-features/2nLtzopw4rPReszdYBJU6h',
   headers: {
       'Authorization': 'Bearer ' + 'YOUR_ACCESS_TOKEN'
   },
   success: function(response) {
       console.log(response);
   }
});

从数据库中检索数据实际上取决于您设计数据库的方式以及存储的信息类型,因此它应该非常简单。

关于javascript - 在 Spotify API Javascript 中搜索轨道 + 添加到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40944078/

相关文章:

java - Blackberry - Java - 阿拉伯语显示 JSON 输出已损坏

java - 字符串的精确 JSON 映射器

ios - Spotify API : How to add Spotify "Preview Track” to last fm App in Objective C

iOS Spotify - 专辑深层链接打开空列表

javascript - 如何使用正则表达式获取标签内容?

javascript - 在 WordPress 循环中使用 Jquery .next

python - 如何在 python 中的 json.load 期间编辑/重命名键?

javascript - 保存的(全局定义的)数组在回调后被清空

javascript - 添加 Angular-leaflet-directive 后 Grunt 构建失败

javascript - setInterval 函数不会更改 View 中的 $scope