我正在尝试使用spring restTemplate调用Spotify API端点,但是HTTP调用返回Internal server error
。
这是Spotify的问题吗?还是我使用此API的方式不正确?
示例:。
String API = "https://api.spotify.com/v1/";
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(accessToken);
HttpEntity<String> entity = new HttpEntity<>(headers);
String url = API + "me/top/artists";
restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
例外:
org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error
at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:79)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:124)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:102)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:778)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:579)
我使用curl尝试了具有相同accessToken的相同呼叫:
>curl -X "GET" -H "Authorization: Bearer accessToken" https://api.spotify.com/v1/me/top/artists
>
但是,这没有返回任何信息(可能是相同的内部服务器错误?)
有什么想法吗?
答案 0 :(得分:0)
使用curl
的调用未返回任何事实,表明您使用的访问令牌可能未授权所有需要的作用域。端点/v1/me/top/{type}
需要user-top-read
授权。
在您的访问令牌中包含此范围应该可以解决此问题。
您也可以测试此场景here。