编辑范围授权Spotify API

时间:2014-10-12 05:14:57

标签: javascript node.js client-side spotify spotify-app

我使用Spotify API,基本上我希望能够访问用户的播放列表,修改播放列表以及创建新的播放列表。我在客户端使用JavaScript包装器(https://github.com/JMPerez/spotify-web-api-js)和授权的隐式授权流程。使用这些示例我已经到了访问用户及其播放列表的位置,我能够向作用域添加一个额外的作用域(playlist-read-private)。我正在尝试添加我需要的其他内容(例如playlist-modify-public),但它不起作用。它不会授权(或转到重定向URL),而是会抛出401:Unauthorized的XMLHttpRequest错误。错误描述为error_description=Illegal+scope:+playlist-modify-public。我第一次添加新范围时,它不会起作用。我休息一下,回到我的代码并重新尝试完全相同的东西,它突然起作用(弹出一个新的授权)。

这是授权码:

      document.getElementById('login-button').addEventListener('click', function() {

        var client_id = '03ffe0cac0a0401aa6673c3cf6d02ced'; // Your client id
        var redirect_uri = 'http://localhost:8888/'; // Your redirect uri

        var state = generateRandomString(16);

        localStorage.setItem(stateKey, state);
        var scope = 'playlist-read-private user-read-private user-read-email';

        var url = 'https://accounts.spotify.com/authorize';
        url += '?response_type=token';
        url += '&client_id=' + encodeURIComponent(client_id);
        url += '&scope=' + encodeURIComponent(scope);
        url += '&redirect_uri=' + encodeURIComponent(redirect_uri);
        url += '&state=' + encodeURIComponent(state);

        window.location = url;
        // onAuthorize();
      }, false);

为了添加新的范围,我想要做的只是改变

'playlist-read-private user-read-private user-read-email'

'playlist-read-private playlist-modify-private user-read-private user-read-email'

所有内容都适用于第一个,但是一旦我更改它,应用程序就会按照我上面描述的方式中断。

任何想法如何让应用程序接受其他范围,以便我可以实际修改播放列表将非常感激。如果我能澄清任何事情,请告诉我,非常感谢你!

(可以找到所有代码here,但我正在进行黑客马拉松,所以它可能会很快发生变化)

TL; DR:我在使用Spotify API时如何添加新范围?

谢谢!

0 个答案:

没有答案