我想访问用户的 Google 帐户user_id
进行身份验证,但在AccountManager
.
我的应用程序如何请求user_id
?
我想访问用户的 Google 帐户user_id
进行身份验证,但在AccountManager
.
我的应用程序如何请求user_id
?
现在Google Play 服务可用,您可以使用它来请求用户访问https://www.googleapis.com/auth/userinfo.profile
范围的权限,并使用生成的访问令牌发出请求https://www.googleapis.com/oauth2/v1/userinfo?access_token={accessToken}
以获取其用户 ID。
在 Google Play 服务发布之前,您需要使用 Android AccountManager 的getAuthToken API。
这是一个如何使用 getAuthToken 获取的示例access_token
:https ://stackoverflow.com/a/10988589/313790
查看 Google 的Tasks API 的 AccountManager 示例。
获得访问令牌后,您可以使用 google-api-java-client 的oauth2 库来请求Userinfo
对象,而不是使用 Tasks 库,如下例所示:
Oauth2 oauth2 = new Oauth2.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("Google-OAuth2Sample/1.0").build();
Userinfo userinfo = oauth2.userinfo().get().execute();
String userId = userinfo.getId();