搜索Track Spotify Android

时间:2018-10-21 18:37:53

标签: android spotify

我目前可以使用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的授权流程时是否可以获取访问令牌,如果可以的话?

1 个答案:

答案 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
    }
  }
}