我正在尝试检索连接到我的应用的用户的google plus个人资料图片,所以我尝试了这样的事情。
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String userMail = user.getEmail();
String userId = user.getUserId();
HttpSession session = request.getSession();
List<String> serviceAccountScopes = new ArrayList<String>();
serviceAccountScopes.add(PlusScopes.USERINFO_EMAIL);
serviceAccountScopes.add(PlusScopes.USERINFO_PROFILE);
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(CLIENT_ID)
.setServiceAccountPrivateKeyFromP12File(new File("client_secrets.p12"))
.setServiceAccountScopes(serviceAccountScopes).build();
Plus plus = new Plus.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName("1078451758443-aijgd9j5p8jqd30cuta8fbtgebaq5t4f.apps.googleusercontent.com").build();
Person person = plus.people().get(userId).execute();
String avatar = person.getImage().getUrl();
session.setAttribute("userMail", userMail);
session.setAttribute("userID", userId);
session.setAttribute("avatar", avatar);
但是当我用我的谷歌帐户尝试这个时,我得到了404.所以我对它进行了调查,我发现它给我的userId的值与我的G +帐户中的值不同。
user.getUserId()给我的值是“11879128221240184894”,而我的G +帐户中的真实值是“113502398666410404252”。
然后我尝试了:
Person person = plus.people().get("113502398666410404252").execute();
它运作良好。
我的问题是:这两个“userId”之间有什么区别?我如何获得连接用户的userId才能使其正常工作?
提前致谢。