我目前可以使用Android SDK播放Spotify中的曲目。我按照此处https://developer.spotify.com/documentation/android/quick-start/的说明进行授权。据我所知,我想提供一种允许用户搜索歌曲的功能(如果我错了,请纠正我),Android SDK不支持,但记录的Web API支持这里https://developer.spotify.com/documentation/web-api/reference/search/search/。问题在于此请求需要访问令牌。使用SDK的授权流程时是否可以获取访问令牌,如果可以的话?
答案 0 :(得分:0)
你是对的。为了使用Spotify的Web API,您需要一个有效的访问令牌。您链接的指南使用App Remote SDK的内置身份验证流程。它在内部请求一个包含app-remote-control
范围的访问令牌。尽管我实际上在引用中找不到任何可以检索确切访问令牌的内容。
在这种情况下,您必须使用Android Auth library。本指南显示了两种身份验证方式,而强烈建议您使用第一种使用Spotify客户端或未安装WebView
后备方式的身份验证。在某些时候遵循本指南,您将获得一个AuthenticationResponse对象,您可以在其中使用一种名为getAccessToken()
的方法,以检索稍后可以与Spotify的Web API一起使用的访问令牌。 。如前所述,至少包括app-remote-control
范围很重要。如果您要获取用户特定的数据(例如播放列表),则还需要包括相应的范围。
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
// Check if result comes from the correct activity
if (requestCode == REQUEST_CODE) {
AuthenticationResponse response = AuthenticationClient.getResponse(resultCode, intent);
switch (response.getType()) {
// Response was successful and contains auth token
case TOKEN:
// Handle successful response
String accessToken = response.getAccessToken();
break;
// Auth flow returned an error
case ERROR:
// Handle error response
break;
// Most likely auth flow was cancelled
default:
// Handle other cases
}
}
}