Java 从Google Plus api注销
我刚刚为我的应用程序集成了一个Google+登录按钮。当您登录、授予访问权限并获取人员信息时,一切都会正常工作。然而,我有一种感觉,我在做这件事时有一个巨大的缺陷,可能会妨碍正确的G+注销 我有一个Java 从Google Plus api注销,java,android,static,google-plus,Java,Android,Static,Google Plus,我刚刚为我的应用程序集成了一个Google+登录按钮。当您登录、授予访问权限并获取人员信息时,一切都会正常工作。然而,我有一种感觉,我在做这件事时有一个巨大的缺陷,可能会妨碍正确的G+注销 我有一个LoginActivity,在这里我创建了mgoogleapclient实例。一旦我进行了登录检查并用人员信息更新了我的DB和var,我就finish()登录活动并转到我的main活动。这是用户可以选择注销的地方 但是,我恐怕需要相同的mGoogleApiClient实例;但当我完成LoginActi
LoginActivity
,在这里我创建了mgoogleapclient
实例。一旦我进行了登录检查并用人员信息更新了我的DB和var,我就finish()
登录活动并转到我的main活动
。这是用户可以选择注销的地方
但是,我恐怕需要相同的mGoogleApiClient
实例;但当我完成LoginActivity
时,这些内容被删除了。所以我稍微修改了一些内容,并尝试将其作为静态变量存储在另一个活动中,我在其中全局使用了一些变量--扩展了应用程序
,但它似乎没有注销
我走的是正确的道路,还是需要以不同的方式来做 您需要在您的main活动中再次连接到google play服务
,并使用您在LoginActivity中拥有的所有相同权限
,以便您可以使用该实例在新活动中注销,请执行以下操作:
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.build();
mGoogleApiClient.connect();
// connect to current session
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
// clear account
mGoogleApiClient.disconnect();
// disconnect
@Nambari不是针对Javascript的吗?它是oAuth和OpenID协议中固有的限制,不特定于任何编程语言。您可以使用应用程序控制器保存GoogleAppClient的确切实例,然后将其加载以从Google帐户注销。好的,我采用这种方法。创建一个保持打开状态的单例。让我们看看它是否有效…我想,如果它正在创建一个新的GoogleAppClient,我已经尝试像这样重新创建它,但出现了异常。它没有得到相同的实例,但您不需要相同的实例。您需要等待MGoogleAppClient连接。任何人都可以在登录google后帮助我,以及如何在登录后从我需要的另一个活动注销显示另一个活动,然后从该活动注销。请帮助我您不需要所有相同的权限。一个连接了Plus.API的GoogleAppClient就足以清除默认帐户或撤销访问权限。@Hounshell这在某种程度上是正确的,但是,如果您在不同的活动(例如google drive)中添加新权限,则在访问API客户端之前,您需要解决登录问题。因此,是的,您需要相同的权限。例如,“所有相同的权限”意味着子集不足。我可以建议用“没有用户尚未授予的任何权限”这样的措辞吗?