使用 sdk spotify-android-auth 从 Spotify 注销

Posted

技术标签:

【中文标题】使用 sdk spotify-android-auth 从 Spotify 注销【英文标题】:Logout from Spotify with the sdk spotify-android-auth 【发布时间】:2017-10-31 05:30:42 【问题描述】:

我有一个 android 应用,用户可以将其链接到 Spotify,其中包含: AuthenticationClient.openLoginActivity(getActivity(), SPOTIFY_REQUEST_CODE, request);

问题是我希望用户更改他的 Spotify 帐户,所以我想从 Spotify 注销用户以使用另一个帐户登录。但是连接的数据保存在缓存中,当我再次使用这一行时: “AuthenticationClient.openLoginActivity(getActivity(), SPOTIFY_REQUEST_CODE, request);”,因为用户已经连接,所以不显示连接对话框。

在文档中,它说: “要注销并清除所有存储的令牌,请使用 AuthenticationClient#clearCookies 方法。Spotify 和 Facebook 令牌都将被删除。”

但是 clearCookies 方法已经不存在了。我可以做些什么来注销用户并允许他连接到另一个帐户?

【问题讨论】:

【参考方案1】:

我在网上搜索过,似乎是这段代码

AuthenticationRequest.Builder builder = new AuthenticationRequest.Builder(CLIENT_ID, type, redirectUri)
           .setShowDialog(true)
           .setScopes(scopes).build();

取自 this 帖子,这是您尝试注销用户的唯一选择。

我无法测试它,所以你应该自己尝试一下,看看是否有效。

Spotify Android SDK 上的文档已过时,并未反映 GitHub 上新的 Spotify 身份验证库。

【讨论】:

好的,谢谢!它有效,我认为这是我目前能做的最好的事情。【参考方案2】:

Spotify 的 Android SDK 文档肯定已经过时了。我的观察是当你打电话时

AuthorizationClient.clearCookies(context) 

就在开始 Spotify 的身份验证活动之前,它运行良好。但是,如果您调用它一次,然后期望用户已注销,那么当您以后启动活动时,缓存的凭据会一直乱七八糟。

我不喜欢

builder.setScopes(arrayOf("")).setShowDialog(false).build()

因为它向您显示“不是您?单击以注销”选项。所以基本上你需要在 Spotify UI 上登出,不能从代码中完成。

在我的例子中,应用程序保存了登录用户的电子邮件(无论如何,我需要它显示在 UI 上)。当我想以编程方式注销用户时,我只需从应用程序中删除保存的电子邮件并调用

clearCookies()

如果变量为空,当我启动 Spotify 的 Activity 时。

【讨论】:

以上是关于使用 sdk spotify-android-auth 从 Spotify 注销的主要内容,如果未能解决你的问题,请参考以下文章

运行 brew install android-sdk 后使用 Android SDK 出错

怎么用xilinx的sdk编译和使用ne10

IOS SDK开发详解(.framework、.a、Bundle资源文件创建、SDK中使用其他SDK等)

一起使用 Google Analytics SDK 和 Firebase SDK

使用 SDK 高于我的最低 SDK 的 API

在非 sdk 项目中使用时无法解决 NuGet 包依赖关系,但在 sdk 项目中可以正常工作