[英]How to get security profile of AWS Connect user outside of the application?
[英]How to get user profile on Google API using the JAVA library?
我有一个 Java ClientRequest 到Google API ,它返回一个 json,其中包含基于 access_token 的配置文件。 URL 是:
https://www.googleapis.com/oauth2/v1/userinfo?access_token=ya29.1.AADtN_VALuuUTBm8ENfNTz8s ...
回应是:
{ "id": "111223344556677889900", "email": "myemail@gmail.com", "verified_email": true, "name": "My Name", "given_name": "My", "family_name": "Name", "link": "plus.google.com/111223344556677889900", "picture": "photo.jpg", "gender": "male", "locale": "en" }
几点:
1我想使用 java 库来避免挂载 http 请求,保留谷歌服务器 url 和其他小事。
2我不需要授权的步骤,因为此时我的方法接收到访问令牌(之前完成了所有 oauth 步骤)。
3在这种方法中,我们没有(目前也不需要)客户端 ID 和密码。
4我不需要 Google+ scope。 其实我更喜欢不要 go 那里。 到目前为止,只找到了使用 Plus 库的示例。
总之,我需要谷歌 api java 库中的一些东西,这与现在使用的 http 请求完全相同。
非常感谢您!
我希望这有帮助
GoogleCredential credential = new GoogleCredential().setAccessToken(accessToken);
Oauth2 oauth2 = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credential).setApplicationName(
"Oauth2").build();
Userinfoplus userinfo = oauth2.userinfo().get().execute();
userinfo.toPrettyString();
补充更多信息,因为我没有足够的声誉来评论上述答案:
添加后
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-oauth2</artifactId>
<version>v2-rev65-1.17.0-rc</version>
</dependency>
到您的pom.xml
文件,以下行
Oauth2 oauth2 = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credential).setApplicationName("Oauth2").build();
could raise "JacksonFactory cannot be resolved to a type", and if this happens, you can replace it with new GsonFactory()
(from com.google.api.client.json.gson ), and it'll work.
Now, about how to get an accessToken
: it comes inside com.google.auth.oauth2.UserCredentials
( com.google.auth.oauth2.UserCredentials ), which you can get by calling com.google.auth.oauth2.UserAuthorizer.getCredentialsFromCode
.
您可以通过调用构建UserAuthorizer
UserAuthorizer
.newBuilder()
.setClientId(ClientId.of(<client id>, <client secret>))
.setScopes(<scopes>)
.build()
您可以通过阅读在您的谷歌云项目仪表板上的凭据下创建的 OAuth 客户端 ID 文件来获取<client id>
和<client secret>
。
最后,一个如何使用com.google.auth.oauth2.ClientId
读取文件的示例:
ClientId parsedClient = ClientId.fromStream(new FileInputStream("key.json"))
我在这里有点晚了,但我希望这对某人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.