自定义应用获取飞书当前用户信息和token的全过程

  1. 在飞书创建自定义应用(过程略)

  1. 获取用户授权code

 String codeUrl="https://open.feishu.cn/open-apis/authen/v1/index";
        //获取用户授权code
        Map<String, String> headerMap = new HashMap<>();
        headerMap.put("Content-Type","application/json; charset=utf-8");
        Map<String, Object> bady = new HashMap<>();
        bady.put("redirect_uri","https://www.baidu.com/"); //重定向 URL,需要与自定义应用的配置相同
        bady.put("app_id","cli_a36f0cb2f93013");        //应用 ID,可以在开发者后台的 凭证与基础信息 页面查看
        bady.put("state","lims"); //用来维护请求和回调状态的附加字符串, 在授权完成回调时会附加此参数,应用可以根据此字符串来判断上下文关系
//        String code = HttpsUtils.sendGet(codeUrl, headerMap, bady);//返回从重定向页面,只能通过前端获取

配置URL

获取应用 ID(App ID,App Secret

3.前端获取code后作为参数获取当前用户token(这个界面就是你需要跳转的界面,之前配置的界面)

4.获取当前用户token

String  code = "bfbs3577376b4dbf99356c2ceb284e7a";//前端获取后传入后端
        //通过前端的授权code拿到用户token
        String userTokenUrl="https://open.feishu.cn/open-apis/authen/v1/access_token";
        // Get access token
        HttpClient client = HttpClients.createDefault();
        HttpPost post = new HttpPost(userTokenUrl);
        Map<String, String> pa = new HashMap<>();
        pa.put("grant_type","authorization_code");//固定值
        pa.put("app_id","cli_a33ad013");//appID
        pa.put("app_secret","scq6xQ");//应用密钥
        pa.put("code","944qe97d064f4871b9d40995d785e5f0");
        StringEntity entity = new StringEntity(
                JSON.toJSON(pa).toString(),
                ContentType.APPLICATION_JSON);
        post.setEntity(entity);
        HttpResponse response = client.execute(post);
        String responseBody = EntityUtils.toString(response.getEntity());
        System.out.println("============================" + responseBody);
        JSONObject jsonObject = JSONArray.parseObject(responseBody);
        if(0 == Integer.parseInt(String.valueOf(jsonObject.get("code")))){
            System.out.println("成功");
            JSONObject data = JSONArray.parseObject(String.valueOf(jsonObject.get("data")));
            System.out.println(data.get("access_token"));
        }else {
            System.out.println("失败" + jsonObject.get("msg"));
        }

返回数据

{
    "code": 0,
    "msg": "success",
    "data": {
        "access_token": "u-Q7JWnaIM_kRChuLfreHmpArjOEayt.5XUBJcZr.V0Gst4FdQCtvrd9sAViLXQnQgkpL19brGOjKZQTxb",
        "token_type": "Bearer",
        "expires_in": 7140,
        "name": "zhangsan",
        "en_name": "Three Zhang",
        "avatar_url": "www.feishu.cn/avatar/icon",
        "avatar_thumb": "www.feishu.cn/avatar/icon_thumb",
        "avatar_middle": "www.feishu.cn/avatar/icon_middle",
        "avatar_big": "www.feishu.cn/avatar/icon_big",
        "open_id": "ou_caecc734c2e3328a62489fe0648c4b98779515d3",
        "union_id": "on_d89jhsdhjsajkda7828enjdj328ydhhw3u43yjhdj",
        "email": "zhangsan@feishu.cn",
        "enterprise_email": "demo@mail.com",
        "user_id": "5d9bdxxx",
        "mobile": "+86130002883xx",
        "tenant_key": "736588c92lxf175d",
        "refresh_expires_in": 2591940,
        "refresh_token": "ur-oQ0mMq6MCcueAv0pwx2fQQhxqv__CbLu6G8ySFwafeKww2Def2BJdOkW3.9gCFM.LBQgFri901QaqeuL",
        "sid": "AAAAAAAAAANjgHsqKEAAEw=="
    }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值