我正在开发一款实现Spotify API的Android应用程序,以允许用户收听音乐 . 我已经配置了Spotify为Android设备创建的播放器,但它的功能非常有限,因此我不得不通过Spotify的Web API来执行更多高级功能 .
我试图获取用户自己的播放列表列表时遇到了错误 . 我正在使用以下命令:
URL url = new URL("https://api.spotify.com/v1/me/playlists");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
但是,对于我所做的其他Web API请求而不是这个命令,它会抛出错误:
java.io.FileNotFoundException: https://api.spotify.com/v1/me/playlists
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:242)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
at com.tmacstudios.spotifyvoice.WebWrapper$override.searchUserPlaylist(WebWrapper.java:257)
at com.tmacstudios.spotifyvoice.WebWrapper$override.access$dispatch(WebWrapper.java)
at com.tmacstudios.spotifyvoice.WebWrapper.searchUserPlaylist(WebWrapper.java:0)
at com.tmacstudios.spotifyvoice.MainActivity$6.run(MainActivity.java:382)
at java.lang.Thread.run(Thread.java:818)
我不完全确定为什么我会收到此错误,但我认为这可能与没有必要的授权来提出此请求有关 . 有人可以帮我解决这个问题吗?
1 回答
在研究了文档之后,我能够找到解决问题的方法 . 事实上我得到了错误,因为我没有使用正确的授权 .
您可以使用以下代码在OnActivityResult中获取授权令牌:
然后在发出URL请求时,只需将授权令牌作为标头传递 .
另请注意,在最初形成授权请求时,必须将启用的权限作为范围启用 .