私はここ数日、Spotify APIとソースコードの例を見てきましたが、ユーザーのプレイリストデータにアクセスするためのアクセストークンを取得する方法がまだわかりません。ログインウィンドウを表示し、ユーザーがログインして、認証コードを受け取るまでになりました。この時点で、私は次のようなことを試みました:
window.open("https://accounts.spotify.com/api/token?
grant_type=authorization_code&code="+code+"&redirect_uri=myurl&client_id=3137b15
2f1424defa2c6020ae5c6d444&client_secret=mysecret");
および
$.ajax(
{
url: "https://accounts.spotify.com/api/token?grant_type=authorization_code&code="+code+"&redirect_uri=myurl&client_secret=mysecret&client_id=myid",
success: function(result){
alert("foo");
}
}
);
しかし、どちらの方法でも次のような結果が得られます。
{"error":"server_error","error_description":"Unexpected status: 405"}
トークンの代わりに。これは簡単だと思いますが、JSでひどいです。助けてください!ありがとうございました!
(編集)言及するのを忘れていました:
API認証ガイドへのリンク: https://developer.spotify.com/web-api/authorization-guide/
ステップ4で立ち往生しています。「ヘッダーパラメータ」またはcURLリクエストを送信する別の方法があり、機能する場合があります。しかし、これらのことを行う方法がわからないので、ユーザーのログイン/コードに対して以前に行ったように、client_idとclient_secretをボディリクエストパラメーターとして送信することにこだわっています。
PS:自分が書いているこのアプリケーションのみを使用しています。代わりにこのプロセスを実行せずにトークンをハードコーディングできる方法はありますか?
認証コードを受け取ったら、それをアクセストークンと交換する必要がありますPOSTリクエストを実行することで)、Spotifyアカウントサービスに、今回は/ api/tokenエンドポイント:
したがって、リクエスト本文にパラメータを指定して、Spotify APIにPOSTリクエストを送信する必要があります。
$.ajax(
{
method: "POST",
url: "https://accounts.spotify.com/api/token",
data: {
"grant_type": "authorization_code",
"code": code,
"redirect_uri": myurl,
"client_secret": mysecret,
"client_id": myid,
},
success: function(result) {
// handle result...
},
}
);
(補足として、 "予期しないステータス:405"はHTTPステータスコードを指します405許可されていないメソッドは、試行したリクエストメソッド(GETリクエスト)がそのURLでは許可されていないことを示します。)