3

私は Spotify API を使用しています。基本的には、ユーザーのプレイリストにアクセスし、プレイリストを変更し、新しいプレイリストを作成できるようにしたいと考えています。クライアント側 ( https://github.com/JMPerez/spotify-web-api-js) には JavaScript ラッパーを使用し、承認には暗黙的な付与フローを使用していました。例を使用して、ユーザーとそのプレイリストにアクセスするポイントに到達し、スコープに 1 つの追加スコープ ( playlist-read-private) を追加することができました。必要なもの ( などplaylist-modify-public) を追加しようとしていますが、機能していません。承認する (またはリダイレクト URL に移動する) のではなく、XMLHttpRequest エラーの 401: Unauthorized がスローされます。エラーの説明は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'

すべてが最初のもので機能しますが、変更するとすぐに、アプリが上記の方法で壊れます。

プレイリストを実際に変更できるように、アプリが他のスコープを受け入れるようにする方法についてのアイデアは大歓迎です。何か明確にできることがあれば教えてください。どうもありがとうございました。

(すべてのコードはここにありますが、私はハッカソンに参加しているため、すぐに変更される可能性があります)

TL;DR: Spotify API を使用する場合、新しいスコープを追加するにはどうすればよいですか?

ありがとうございました!

4

0 に答える 0