java抖音开发授权登录获取用户信息详细步骤

您所在的位置:网站首页 抖音扫码授权登录怎么解除 java抖音开发授权登录获取用户信息详细步骤

java抖音开发授权登录获取用户信息详细步骤

2024-07-12 11:47| 来源: 网络整理| 查看: 265

一、向抖音开放平台管理中心去创建应用 二、创建应用过后,抖音官方会进行审核,审核比较慢,一般需要3-7个工作日。 三、审核通过之后会给你一个相对于的Client Key,和一个Client Secret,相当于k和v。 四、拿到这些就可以进行实际代码开发 具体代码实现结合官方文档进行开发 1.第一步获取授权码code,按照官方的要求填相应的数据去请求这个地址https://open.douyin.com;所有api都是以这个为开头 具体代码实现: Service

1234567@Override     public String qrcodeAuth(DouYinCode codes) {         String code = "https://open.douyin.com/platform/oauth/connect/?client_key=" + codes.getClientKey()                 + "&response_type="+codes.getResponseType()+"&scope="+codes.getScope()+"&redirect_uri="+codes.getRedirectUri()+"&state="+codes.getState();         logger.info("qrConnect requestUrl=" + code);         return code;     }

Controller

12345@GetMapping(value = "code")     public void Code(HttpServletRequest request, HttpServletResponse response, DouYinCode codes) throws IOException {         String requestUrl = douYinService.qrcodeAuth(codes);         response.sendRedirect(requestUrl);     }

2.根据code换取对应的token,根据token获取用户信息,获取到用户信息保存到数据库 Service

1234567891011121314151617  @Override     public OutputObject insertUser(User user) {         try {             int i = loginMapper.insert(user);             if (i > 0){                 return new OutputObject(ReturnCode.SUCCESS, "成功", "添加成功");             }else {                 return new OutputObject(ReturnCode.FAIL, "失败", user);             }         }catch (Exception e){             // 事务回滚             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();             return new OutputObject(ReturnCode.FAIL, "失败", e.getMessage());         }     }

Controller

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 /**      * 根据code换取token,根据token获取用户信息      * 保存用户信息到数据库      */     @GetMapping(value = "user")     public OutputObject doGit(HttpServletRequest request, HttpServletResponse response, DouYinCode codes) throws ServletException, IOException {         String code = request.getParameter("code");         // 判断         if(code == null){             throw new RuntimeException("用户禁止授权...");         }         try {             // 获取到了code值,回调没有问题             // 定义地址             String token_url = "https://open.douyin.com/oauth/access_token/?client_key=" + clientKey                     + "&client_secret="+clientSecret+"&code="+code+"&grant_type=authorization_code";             // 发送请求             HttpClient client = new HttpClient(token_url);             // 发送get请求             client.get();             // 获取到请求的结果  json格式的字符串,把json格式的字符串转换成Map集合             String token_content = client.getContent();             ObjectMapper om = new ObjectMapper();             Map map = new HashMap();             map = om.readValue(token_content, Map.class);             Map object = (Map) map.get("data");             Object access_token = object.get("access_token");             redis.set("access_token",access_token);             Object open_id = object.get("open_id");             // 获取到接口调用凭证             // 获取个人的信息             // 传入两个参数,access_token openid             // https://open.douyin.com/oauth/userinfo/?access_token=act.0b28cadff39c17f87f3dcd42e6ea77bbDswNzmJgdfR4n534HQZJye86KNHF&open_id=49a60c64-b855-4bee-8379-164184186935             String user_url = "https://open.douyin.com/oauth/userinfo/?access_token="+access_token+"&open_id="+open_id;             // 发送请求             HttpClient client1 = new HttpClient(user_url);             client1.get();             String user_content = client1.getContent();             ObjectMapper user = new ObjectMapper();             Map usermap = new HashMap();             map = user.readValue(user_content, Map.class);             // 解析获取到的对象             Map userObject = (Map) map.get("data");             DouYinUser user1 = new DouYinUser();             Object a = userObject.get("nickname");             user1.setNickname((String) a);             Object b = userObject.get("open_id");             user1.setOpenId((String) b);             Object avatar = userObject.get("avatar");             user1.setAvatar((String) avatar);             Object gender = userObject.get("gender");             user1.setGender((gender.toString()));             Object province = userObject.get("province");             user1.setProvince((String) province);             Object city = userObject.get("city");             user1.setCity((String) city);             Object country = userObject.get("country");             user1.setCountry((String) country);             // 存储数据库             return douYinService.insertUsers(user1);         } catch (ParseException e) {             e.printStackTrace();             throw new RuntimeException("抖音扫码登录异常...");         }     } 1 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3