我有一个Android应用,用户可以链接到Spotify,其中包含: AuthenticationClient.openLoginActivity(getActivity(),SPOTIFY_REQUEST_CODE,request);
问题是我希望用户更改他的Spotify帐户,因此我想从Spotify注销用户以使用其他帐户登录。但是连接的数据保存在缓存中,当我再次使用此行时: " AuthenticationClient.openLoginActivity(getActivity(),SPOTIFY_REQUEST_CODE,request);",它不显示连接对话框,因为用户已经连接。
在文档中,它说: "要注销并清除所有存储的令牌,请使用AuthenticationClient#clearCookies方法。 Spotify和Facebook令牌都将被删除。"
但是clearCookies方法不再存在了。如何退出用户并允许他在另一个帐户上进行连接?
答案 0 :(得分:2)
是的,Spotify 的 Android SDK 文档肯定已经过时了。我的观察是,当你打电话
AuthorizationClient.clearCookies(context)
直接在开始 Spotify 的身份验证活动之前,它运行良好。但是,如果您调用它一次,然后期望用户已注销,那么当您以后启动该活动时,缓存的凭据会不断混乱。
我不喜欢
builder.setScopes(arrayOf("")).setShowDialog(false).build()
因为它显示了“不是你?点击退出”选项。所以基本上你需要在 Spotify UI 上注销,不能通过代码来完成。
就我而言,应用程序会保存登录用户的电子邮件(无论如何,我需要将其显示在 UI 上)。当我想以编程方式注销用户时,我只需从应用程序中删除保存的电子邮件并调用它
clearCookies()
如果变量为空,当我启动 Spotify 的活动时的东西。
答案 1 :(得分:0)
我在网上搜索过,似乎是这段代码
AuthenticationRequest.Builder builder = new AuthenticationRequest.Builder(CLIENT_ID, type, redirectUri)
.setShowDialog(true)
.setScopes(scopes).build();
从this张贴,发布它是您尝试退出用户的唯一选择。
我无法测试它,所以你应该自己尝试一下,看看是否有用。
Spotify Android SDK上的文档已过时,并未反映GitHub上新的Spotify auth库。