我无法从 Spotify 为我的应用检索访问令牌

Posted

技术标签:

【中文标题】我无法从 Spotify 为我的应用检索访问令牌【英文标题】:I can't retrieve an access token from Spotify for my app 【发布时间】:2019-09-04 08:49:06 【问题描述】:

我无法从 Spotify 获取我的 android 应用的访问令牌,因为我可以连接到端点。

我需要我的 Android 应用程序的访问令牌,我尝试了以下操作: 1) Spotify Android 授权库。我找不到他们谈论的 spotify-auth-version.aar。 2)手动构建网址。这是一个例子:

https://accounts.spotify.com/authorize?
client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&
response_type=code&
redirect_uri=http%3A%2F%2Fmarcoalunno.com.spotify_test%2Fcallback&
scope=playlist-read-private&
state=34fFs29kd09

当我尝试连接时,我得到了所有可能的错误:“缺少必需的参数:client_id”、“INVALID_CLIENT:无效的重定向 URI”、“找不到页面”,甚至还有其他我不记得的错误。我想问题出在redirect_uri 上。所以,我添加了几个不同的重定向地址并尝试了所有这些,但没有。

这是我在应用中添加的地址: https://spotify_test.com/callback http://marcoalunno.com/callback http://localhost:8888/callback/ http://marcoalunno.com.spotify_test/callback

及其编码版本: https%3A%2F%2Fspotify_test.com%2Fcallback%0A http%3A%2F%2Fmarcoalunno.com%2Fcallback%0A http%3A%2F%2Flocalhost%3A8888%2Fcallback%2F%0A http%3A%2F%2Fmarcoalunno.com.spotify_test%2Fcallback

我知道很多人在 *** 上询问过“INVALID_CLIENT:无效的重定向 URI”,但我找不到确切的答案,对此我感到非常沮丧。

【问题讨论】:

【参考方案1】:

据我所知.aar 文件是将此库集成到您的项目中的一种旧方法,现在您只需将以下行添加到您的build.gradle

compile 'com.spotify.android:auth:1.1.0'

更多信息和所需的进一步步骤可以在库GitHub page 上找到。

您是否对服务器上的重定向 URI 进行了处理?我刚刚将 soundtrack://callback 用于我的名为 app 的配乐。我想你几乎可以使用任何你喜欢的东西,只要它与你的 Spotify 开发者仪表板和你的 android 应用程序清单文件中的匹配。

在 Spotify Auth 库的帮助下,与手动方式相比,它应该更容易进行身份验证。如果您想采用手动方式,我可以查看 url 构建过程并相应地编辑此答案。

Spotify auth 示例项目中的相关文件为:

build.gradle - 添加身份验证库的位置

spotify-strings.xml - 在此声明清单文件的重定向方案和主机。在我的情况下scheme = "soundtrack"host = "callback"

MainActivity.java - 创建请求并处理 回复。

【讨论】:

没有成功。我从仪表板中的另一个应用程序开始。我从 android-auth-master 库中实现了 auth-sample,我得到的只是访问令牌:null 和请求代码:null。我手动再次尝试,我得到的只是无法访问此站点。我永远无法通过登录页面并获得使用条款和条件,如 13:30 视频所示:youtube.com/watch?v=ZvGnvOShStI&t=575s。我显然做错了什么,但我不知道是什么,也不知道还能尝试什么。 好的,我已经按照上面提到的步骤创建了一个项目:github project。完成这项工作所需的步骤位于 MainActivity.java 中的 cmets 中。如果获得的访问令牌按预期工作,我已将您在另一个问题中提到的播放列表列表作为验证。如果有不清楚的地方,请问 非常感谢!这有效,应该被认为是正确的答案。我仍然不太清楚为什么这有效而我的无效,但它很棒。现在我需要在我的播放列表中获取曲目的名称,这就是我首先需要获取访问令牌的原因。你也可以帮忙吗? 知道了。发现于***.com/questions/52802015/… 很高兴这终于奏效了! (:如果这有帮助,请将我的回答标记为已接受,并在您之前的问题中这样做,因为您在此项目中也使用了建议的代码。

以上是关于我无法从 Spotify 为我的应用检索访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

Spotify — 通过 Postman 获取访问令牌(为我自己的用户)

球拍 - 无法检索 Spotify 访问令牌:“不支持的 grant_type”

Spotify API:如何仅为我自己获取访问令牌

无法从 Spotify API 获取访问令牌

Spotify 会话更新问题

我正在使用 Spotify api,但无法从重定向 api 接收访问令牌“代码”