钉工牌实现用户访客码创建
预期效果

流程简介
1.
2.
3.
步骤一:创建企业内部应用
1.

2.
步骤二:获取AppKey和AppSecret

步骤三:添加接口权限

步骤四:获取应用访问凭证accessToken
public void getAccessToken() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkoauth2_1_0.Client client = new com.aliyun.dingtalkoauth2_1_0.Client(config);
GetAccessTokenRequest accessTokenRequest = new GetAccessTokenRequest()
.setAppKey("din*********hgn")
.setAppSecret("9G_O************mBkhgGIO");
GetAccessTokenResponse accessToken = client.getAccessToken(accessTokenRequest);
System.out.println(JSON.toJSONString(accessToken.getBody()));
}
步骤五:调用服务端钉工牌相关API
1.
public void badgeConfigure() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkbadge_1_0.Client client = new com.aliyun.dingtalkbadge_1_0.Client(config);
SaveBadgeCodeCorpInstanceHeaders saveBadgeCodeCorpInstanceHeaders = new SaveBadgeCodeCorpInstanceHeaders();
saveBadgeCodeCorpInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
Map<String,String> map = new HashMap<>();
map.put("supportRelateAlipay","true");
SaveBadgeCodeCorpInstanceRequest saveBadgeCodeCorpInstanceRequest = new SaveBadgeCodeCorpInstanceRequest()
.setCodeIdentity("DT_VISITOR")
.setCorpId("ding16b241fd05c8******5d8e4f7c288")
.setStatus("OPEN")
.setExtInfo(map);
try {
SaveBadgeCodeCorpInstanceResponse saveBadgeCodeCorpInstanceResponse = client.saveBadgeCodeCorpInstanceWithOptions(saveBadgeCodeCorpInstanceRequest, saveBadgeCodeCorpInstanceHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(saveBadgeCodeCorpInstanceResponse.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} 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 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
2.
public void createBadgeCode() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkbadge_1_0.Client client = new com.aliyun.dingtalkbadge_1_0.Client(config);
CreateBadgeCodeUserInstanceHeaders createBadgeCodeUserInstanceHeaders = new CreateBadgeCodeUserInstanceHeaders();
createBadgeCodeUserInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
CreateBadgeCodeUserInstanceRequest.CreateBadgeCodeUserInstanceRequestAvailableTimes availableTimes0 = new CreateBadgeCodeUserInstanceRequest.CreateBadgeCodeUserInstanceRequestAvailableTimes()
.setGmtStart("2022-11-23 00:00:00")
.setGmtEnd("2022-11-24 00:00:00");
Map<String,String> map = new HashMap<>();
map.put("applicantName","小钉");
map.put("applyTime","2022-11-23 00:00:00");
map.put("visitorName","小七");
map.put("visitorMobile","86-155****3240");
CreateBadgeCodeUserInstanceRequest createBadgeCodeUserInstanceRequest = new CreateBadgeCodeUserInstanceRequest()
.setRequestId("202211231001")
.setCodeIdentity("DT_VISITOR")
.setCodeValue("badgeCode_11231001")
.setStatus("OPEN")
.setCorpId("ding16b241fd05c8******5d8e4f7c288")
.setUserCorpRelationType("INTERNAL_STAFF")
.setUserIdentity("manager7675")
.setGmtExpired("2022-11-24 00:00:00")
.setExtInfo(map)
.setAvailableTimes(java.util.Arrays.asList(
availableTimes0
));
try {
CreateBadgeCodeUserInstanceResponse badgeCodeUserInstanceWithOptions = client.createBadgeCodeUserInstanceWithOptions(createBadgeCodeUserInstanceRequest, createBadgeCodeUserInstanceHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(badgeCodeUserInstanceWithOptions.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} 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 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
3.
public void updateBadgeCode() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkbadge_1_0.Client client = new com.aliyun.dingtalkbadge_1_0.Client(config);
com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceHeaders updateBadgeCodeUserInstanceHeaders = new com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceHeaders();
updateBadgeCodeUserInstanceHeaders.xAcsDingtalkAccessToken = "accessToken";
com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceRequest.UpdateBadgeCodeUserInstanceRequestAvailableTimes availableTimes0 = new com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceRequest.UpdateBadgeCodeUserInstanceRequestAvailableTimes()
.setGmtStart("2022-11-23 00:00:00")
.setGmtEnd("2022-11-25 00:00:00");
Map<String,String> map = new HashMap<>();
map.put("applicantName","小钉");
map.put("applyTime","2022-11-23 00:00:00");
map.put("visitorName","小七");
map.put("visitorMobile","86-155****3240");
com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceRequest updateBadgeCodeUserInstanceRequest = new com.aliyun.dingtalkbadge_1_0.models.UpdateBadgeCodeUserInstanceRequest()
.setCodeId("84a66edcf7065bc19a9169******888210a54611597e54e8_202211231001")
.setCodeIdentity("DT_VISITOR")
.setCodeValue("badgeCode_11231001")
.setStatus("OPEN")
.setCorpId("ding16b241fd05c8******5d8e4f7c288")
.setUserCorpRelationType("INTERNAL_STAFF")
.setUserIdentity("manager7675")
.setGmtExpired("2022-11-25 00:00:00")
.setExtInfo(map)
.setAvailableTimes(java.util.Arrays.asList(
availableTimes0
));
try {
UpdateBadgeCodeUserInstanceResponse updateBadgeCodeUserInstanceResponse = client.updateBadgeCodeUserInstanceWithOptions(updateBadgeCodeUserInstanceRequest, updateBadgeCodeUserInstanceHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(updateBadgeCodeUserInstanceResponse.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
} 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 属性,可帮助开发定位问题
System.out.println(err.code);
System.out.println(err.message);
}
}
}
修改于 2024-01-16 06:16:25