private static final Logger logger = LoggerFactory.getLogger(FacebookService.class);
public static final String FB_AUTH_LOGIN_URL = "https://graph.facebook.com/oauth/access_token";
public static final String FB_USER_INFO_URL = "https://graph.facebook.com/me";
//获取用户的那些信息
public static final String FB_USER_FIELDS = "id,cover,email,gender,name,languages,timezone,third_party_id,updated_time,picture";
public static FacebookUser getUserByToken(String accessToken) {
try {
String userUrl = String.format("%s?access_token=%s&fields=%s",
FB_USER_INFO_URL, accessToken, FB_USER_FIELDS);
String userRet = HttpUtil.get(userUrl);
logger.info("Facebook返回: {}", userRet);
FacebookUser userInfoData = new FacebookUser();
JSONObject json = new JSONObject(userRet);
String email = json.optString("email");
if (email != null) {
email = email.replace("\\u0040", "@");
}
JSONObject picture = json.getJSONObject("picture");
if (picture != null) {
JSONObject data = picture.getJSONObject("data");
if(data != null){
String url = data.getString("url");
userInfoData.setPicture(url);
}
}
userInfoData.setId(json.getString("id"));
userInfoData.setGender(json.optString("gender"));
userInfoData.setCover(json.optString("cover"));
userInfoData.setEmail(email);
userInfoData.setName(json.optString("name"));
userInfoData.setThirdPartyId(json.optString("third_party_id"));
userInfoData.setAccessToken(accessToken);
return userInfoData;
} catch (Exception ex) {
logger.error("verify the access token failed: {}", ex.getMessage());
return null;
}
}
使用