| | |
| | | return accessToken; |
| | | } |
| | | |
| | | private String getAccessToken(String corpId) { |
| | | com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config(); |
| | | config.protocol = "https"; |
| | | config.regionId = "central"; |
| | | try { |
| | | com.aliyun.dingtalkoauth2_1_0.Client client = new com.aliyun.dingtalkoauth2_1_0.Client(config); |
| | | com.aliyun.dingtalkoauth2_1_0.models.GetTokenRequest getTokenRequest = new com.aliyun.dingtalkoauth2_1_0.models.GetTokenRequest() |
| | | .setClientId(clientId) |
| | | .setClientSecret(clientSecret) |
| | | .setGrantType("client_credentials"); |
| | | GetTokenResponse response = client.getToken(corpId, getTokenRequest); |
| | | return response.getBody().accessToken; |
| | | } catch (TeaException err) { |
| | | if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { |
| | | // err 中含有 code 和 message 属性,可帮助开发定位问题 |
| | | log.error("Error getting access token: {}", err.getMessage()); |
| | | } |
| | | |
| | | } catch (Exception _err) { |
| | | TeaException err = new TeaException(_err.getMessage(), _err); |
| | | if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { |
| | | // err 中含有 code 和 message 属性,可帮助开发定位问题 |
| | | log.error("Error getting access token: {}", err.getMessage()); |
| | | } |
| | | } |
| | | return null; |
| | | private String getAccessToken() throws ApiException { |
| | | DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); |
| | | OapiGettokenRequest req = new OapiGettokenRequest(); |
| | | req.setAppkey(clientId); |
| | | req.setAppsecret(clientSecret); |
| | | req.setHttpMethod("GET"); |
| | | OapiGettokenResponse rsp = client.execute(req); |
| | | return rsp.getAccessToken(); |
| | | } |
| | | |
| | | |
| | |
| | | DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo"); |
| | | OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest(); |
| | | req.setCode(dto.getCode()); |
| | | OapiV2UserGetuserinfoResponse rsp = client.execute(req, getAccessToken(dto.getCorpId())); |
| | | OapiV2UserGetuserinfoResponse rsp = client.execute(req, getAccessToken()); |
| | | if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ |
| | | return rsp.getResult(); |
| | | }else{ |