Код: Выделить всё
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();
}
}
Однажды я заменил POST на GET, но это все равно не сработало. (В документации Spotify также указано, что вам необходимо использовать POST)
Я пытался получить RefreshToken от пользователя. Используя аналогичный код, мне удалось получить AccessToken для отправки запросов к платформе. Только не для пользователя. (Как упоминалось выше)
Подробнее здесь: https://stackoverflow.com/questions/784 ... uest-error
Мобильная версия