Facebook登录-后端

 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;
        }
    }

使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值