我有一个Android应用程序和Web服务器一起工作。现在我希望用户通过谷歌从Android应用程序登录(或使用Android上的一个谷歌帐户)。然后andriod应用程序通过服务调用将令牌传递给我的网络服务器...在这里我无法实现如何从谷歌获得用户电子邮件或个人资料数据。
我可以在浏览器中拨打这样的电话:https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}
但是如何使用谷歌图书馆呢?使用什么库等等?
答案 0 :(得分:1)
根据您尝试使用的服务,只需选择Google's Client Libraries中的正确服务,然后查看Google+ Sample。
对于所有API,前半部分应该基本相同。要获取用户信息,您需要oauth2
library,然后执行此类操作(取自this example):
// Set up the HTTP transport and JSON factory
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
// Set up OAuth 2.0 access of protected resources
// using the refresh and access tokens, automatically
// refreshing the access token when it expires
GoogleAccessProtectedResource requestInitializer =
new GoogleAccessProtectedResource(accessToken, httpTransport,
jsonFactory, clientId, clientSecret, refreshToken);
// set up global Oauth2 instance
Oauth2 oauth2 = new Oauth2.Builder(httpTransport, jsonFactory, requestInitializer)
.setApplicationName("Google-OAuth2Sample/1.0").build();
Userinfo userinfo = oauth2.userinfo().get().execute();
答案 1 :(得分:1)
我使用了此处的代码示例:https://github.com/googleplus/gplus-verifytoken-java,它似乎更新。代码最终变成了:
GoogleCredential credential = new GoogleCredential().setAccessToken( accessToken );
Oauth2 oauth2 = new Oauth2.Builder(
UrlFetchTransport.getDefaultInstance(),
JacksonFactory.getDefaultInstance(), credential )
.build();
Tokeninfo tokenInfo = oauth2.tokeninfo().setAccessToken( accessToken ).execute();
// ... check tokeninfo expiry and issued to etc ...
答案 2 :(得分:0)
您将需要此库 google-api-client JAR。这是工作代码如何做到这一点。随身携带您的 ID_TOKEN 和 CLIENT_ID。
for i in range(2, userInput):