java 集成 Facebook 登录

1 Oauth2.0

在这里插入图片描述
步骤:

1 请求授权服务获取授权code。
2 用授权code请求token。
3 用token请求用户信息。

ps:oauth2.0 详情不懂的可以自己百度,也可以去b站学习。

2 Facebook 配置

2.1 进入开发者配置

https://developers.facebook.com/

2.2 创建应用

在这里插入图片描述
描述: 创建应用,集成FaceBook 登录
在这里插入图片描述

描述: 记录appId、appSecret
在这里插入图片描述
描述: 设置获取授权码url
在这里插入图片描述
描述: 查看其它
在这里插入图片描述
在这里插入图片描述

3 java代码

3.1 获取授权码

@RestController
public class FaceBookController {


    @GetMapping("/face/book/code")
    public String getCode(HttpServletRequest request) {

        return request.getParameter("code");
    }
}

3.2 拼接uri后点击获取授权码

  private static void printCodeUrl() {
        String codeUrl = code_url + "?client_id=" + client_id + "&redirect_uri=" + redirect_url + "&state=" + UUID.randomUUID().toString();
        System.out.println(codeUrl);
    }

在这里插入图片描述

3.3 根据授权码获取用户信息

public class JavaTest {

    //应用编号
    private static String client_id = "#######################";
    //应用秘钥
    private static String client_secret = "#####################";
    //回调地址
    private static String redirect_url = "https://localhost:8080/face/book/code";
    //获取临时口令
    private static String code_url = "https://www.facebook.com/v14.0/dialog/oauth";
    //获取访问口令
    private static String token_url = "https://graph.facebook.com/v14.0/oauth/access_token";
    //获取用户信息
    private static String user_info_url = "https://graph.facebook.com/debug_token";


    public static void main(String[] args) {


        // printCodeUrl();
        getUserInfo();

    }

    private static void getUserInfo() {

        String code = "AQAIuvknol9CEc_ylAs3nmXX0oDRsrdzfxbKHvkuY2JJ1Dtu_3LJSkCjjH5_NXE4A_n8Ca7J3YehpKwCpadDjrD4q1LSryd5kapvLQ-sqLKBUFKM8ziscq7HuIAMNA85XsGuPeVjNwLFxh0k_RzhUBslYrymJRZO5QocxxWtNbzH2Xl5LBW7C--wuyp0baapkhepANpS4f74H4GqD4zFdygv-00CY5WRl0mFNWG-1L8d8zzZrev9ywJj8Dr2MYSMxRdDnsvOWkXmGK8A313Ng5vjiDgrYDYojjKot2EKrmK13mjVD2LKSW29iW76AAhi_JuDS0jqTTK3yAH9hEtD0y68cm-gfdhcoudCUmagAVFXHUCYdQ1oNKYx63qRJ9XiTvo";

        //获取token
        String token = getToken(code);
        //根据token 获取用户信息
        String userInfoUrl = user_info_url + "?input_token=" + token + "&access_token=" + client_id + "|" + client_secret;
        RestTemplate restTemplate = new RestTemplate();
        String userInfoResponse = restTemplate.getForObject(userInfoUrl, String.class);
        JSONObject jsonObject = JSON.parseObject(userInfoResponse);
        System.out.println(jsonObject.toJSONString());
    }


    private static String getToken(String code) {
        String tokenUrl = token_url + "?client_id=" + client_id + "&redirect_uri=" + redirect_url + "&client_secret=" + client_secret + "&code=" + code;
        RestTemplate restTemplate = new RestTemplate();
        String tokenResponse = restTemplate.getForObject(tokenUrl, String.class);
        JSONObject jsonObject = JSON.parseObject(tokenResponse);
        return jsonObject.getString("access_token");
    }

    private static void printCodeUrl() {
        String codeUrl = code_url + "?client_id=" + client_id + "&redirect_uri=" + redirect_url + "&state=" + UUID.randomUUID().toString();
        System.out.println(codeUrl);
    }

}

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Facebook 的接口调用可以使用 Java 编程语言来实现。Java 是一种广泛应用于企业级应用开发的编程语言,对于网络应用的开发具有优秀的支持和丰富的库和框架。 要使用 Facebook 的接口调用 Java,首先需要使用 Facebook 开发者平台创建一个应用程序。在创建应用程序后,可以获取一个应用程序标识符和密钥,这些用来作为身份验证和授权调用 FacebookAPI。 接下来,你可以使用 Java 编程语言来发送 HTTP 请求到 Facebook 的服务器,并使用获得的应用程序标识符和密钥进行身份验证。可以使用 Java 的网络库,如 Apache HttpClient,来轻松地完成这些操作。 一旦完成身份验证,就可以开始调用 Facebook 的不同 API。你可以使用 Java 编程语言发送 GET 或 POST 请求到相应的 API 端点,并处理返回的 JSON 或 XML 格式的数据。可以使用 Java 的 JSON 解析库,如 Jackson 或 Gson,来解析返回的数据以获取所需的信息。 例如,你可以使用 Java 调用 Facebook 的图像 API 来获取用户的头像信息。你可以发送一个 GET 请求到 "https://graph.facebook.com/{user_id}/picture",并将用户的 id 替换为实际的用户 id。然后,你可以将返回的图像数据保存到本地或在应用程序中显示。 总结来说,要在 Java 中调用 Facebook 的接口,你需要创建一个 Facebook 应用程序,使用 Java 的网络库发送 HTTP 请求进行身份验证,并使用 JSON 解析库解析返回的数据。通过这种方式,你可以利用 Java 的强大功能来开发与 Facebook 相关的应用程序或集成功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

响彻天堂丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值