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

Logout from Spotify with the sdk spotify-android-auth

我有一个 Android 应用程序,用户可以 link 到 Spotify,使用: AuthenticationClient.openLoginActivity(getActivity(), SPOTIFY_REQUEST_CODE, 请求);

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

在文档中,它说: "To log out and clear all stored tokens, use the AuthenticationClient#clearCookies method. Both Spotify and Facebook tokens will be removed."

但是clearCookies方法已经不存在了。我该怎么做才能注销用户并允许他连接到另一个帐户?

网上搜了一下好像是这段代码

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

摘自 this post 这是您尝试注销用户的唯一选择。

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

Spotify Android SDK 上的文档已过时,未反映 GitHub 上的新 Spotify 授权库。

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

AuthorizationClient.clearCookies(context) 

直接在启动 Spotify 的身份验证之前 activity,它工作正常。但是,如果您调用它一次,然后期望用户已注销,那么当您稍后启动 activity 时,缓存的凭据会一直乱七八糟。

我不喜欢

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

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

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

clearCookies()

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