Ich habe das Problem, das ich eine Request erstellen möchte, womit ich den RefreshToken von einem User erhalte und die ganze Zeit den Fehler 400 erhalte.
public void getTokens() {
try {
URL url = new URL(accessTokenURL);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setDoOutput(true);
http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String authHeader = Base64.getEncoder().encodeToString((clientID + ":" + clientSecret).getBytes());
http.setRequestProperty("Authorization", "Basic " + authHeader);
String data = "grant_type=authorization_code&code=" + code + "&redirect_uri=" + redirectURL;
byte[] out = data.getBytes(StandardCharsets.UTF_8);
OutputStream stream = http.getOutputStream();
stream.write(out);
BufferedReader Lines = new BufferedReader(new InputStreamReader(http.getInputStream()));
String currentLine = Lines.readLine();
StringBuilder response = new StringBuilder();
while (currentLine != null) {
response.append(currentLine).append("n");
currentLine = Lines.readLine();
}
this.accessToken = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("access_token"));
this.refreshToken = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("refresh_token"));
this.expiresIn = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("expires_in"));
http.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
Ich habe es mit dem curl command getestet, ob die eingaben falsch sind. Dort ging alles.
Ich habe POST einmal mit GET ersetzt, es funktionierte trotzdem nicht. (In den Docs von Spotify steht auch drinnen, das man POST benutzen muss)
Ich habe versucht, den RefreshToken vom User zu erhalten. Mit einem ähnlichen Code habe ich es hinbekommen, ein AccessToken zu erhalten, um anfragen an die Platform zu stellen. Bloß nicht für ein User.
Luten is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.