【问题标题】:Trouble with Spotify WebAPISpotify WebAPI 的问题
【发布时间】:2019-07-23 17:14:54
【问题描述】:

我无法在我的 html 中运行它。当我在我的 node.js 命令提示符下运行它时它可以工作。我认为这是因为 require() 仅适用于 node.js 而不适用于 html 的客户端。有没有办法可以将其更改为在我的 html 中工作?

我的授权代码和我在代码中的 user_id 一起运行。

var request = require("request");
var user_id = "";
var accessToken= "Bearer";

var playlists_url = "https://api.spotify.com/v1/users/"+user_id+"/playlists";

request({url: playlists_url, headers:{ "Authorization": accessToken}},
function(err, res){
  if (res){
    var playlists= JSON.parse(res.body);
    // console.log(JSON.stringify(playlists.items, null, ""));
    var playlist_url = playlists.items[0].href;
    request({url: playlist_url, headers:{ "Authorization": accessToken}},
    function(err, res){
      if (res){
        var playlist = JSON.parse(res.body);
        console.log("playlist:" + playlist.name);
        playlist.tracks.items.forEach(function(track){
          console.log(track.track.name);
        });
      }
  })
 }
})

【问题讨论】:

  • 可能不会;从浏览器中,您很可能会遇到 CORS 错误。跨域限制不适用于服务器端代码,但它们确实适用于从浏览器执行的代码。不过,Spotify 可能允许跨域请求。我不熟悉他们的 API。

标签: javascript html api spotify


【解决方案1】:

你可以使用Spotify Web API JS然后开玩笑写:

var Spotify = require('spotify-web-api-js');
var spotifyApi = new Spotify();

spotifyApi.getUserPlaylists(your_user_id)
   .then(function(data) {
       console.log('User playlists', data);
   }, function(err) {
       console.error(err);
   });

【讨论】:

    【解决方案2】:

    您可以使用jQuery.get() 来自客户端的请求:

    var user_id = '';
    var accessToken= 'Bearer';
    var requestUrl = 'https://api.spotify.com/v1/users/' + user_id + '/playlists';
    
    $.get(requestUrl, { 'authorization': accessToken; }, function(data) {
        // process the received data...
    });
    

    【讨论】:

    • 使用 jQuery.get() 在 html 中运行时出现 401 错误。
    猜你喜欢
    • 2015-11-08
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2018-07-08
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多