Skip to content

Commit 4abffde

Browse files
authored
🆕 #3243【企业微信】增加获取敏感词规则列表和获取敏感词规则详情的接口
1 parent 573f0f5 commit 4abffde

File tree

5 files changed

+169
-0
lines changed

5 files changed

+169
-0
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import me.chanjar.weixin.cp.bean.external.contact.*;
99
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRule;
1010
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleAddRequest;
11+
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleInfo;
12+
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleList;
1113

1214
import java.io.File;
1315
import java.io.IOException;
@@ -1134,6 +1136,31 @@ WxMediaUploadResult uploadAttachment(String mediaType, Integer attachmentType, F
11341136
*/
11351137
void delInterceptRule(String ruleId) throws WxErrorException;
11361138

1139+
/**
1140+
* 获取敏感词规则列表
1141+
*
1142+
* 企业和第三方应用可以通过此接口获取所有设置的敏感词规则列表。
1143+
* 请求方式:GET(HTTPS)
1144+
* 文档地址:<a href="https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_intercept_rule_list">获取敏感词规则列表</a>
1145+
*
1146+
* @return WxCpInterceptRuleList 敏感词规则列表
1147+
* @throws WxErrorException 微信API异常
1148+
*/
1149+
WxCpInterceptRuleList getInterceptRuleList() throws WxErrorException;
1150+
1151+
/**
1152+
* 获取敏感词详情
1153+
*
1154+
* 企业和第三方应用可以通过此接口获取单个敏感词规则的详细信息。
1155+
* 请求方式:GET(HTTPS)
1156+
* 文档地址:<a href="https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_intercept_rule">获取敏感词详情</a>
1157+
*
1158+
* @param ruleId 敏感词规则ID
1159+
* @return WxCpInterceptRuleInfo 敏感词规则详情
1160+
* @throws WxErrorException 微信API异常
1161+
*/
1162+
WxCpInterceptRuleInfo getInterceptRuleDetail(String ruleId) throws WxErrorException;
1163+
11371164
/**
11381165
* <pre>
11391166
* 创建商品图册

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import me.chanjar.weixin.cp.bean.external.contact.*;
2222
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRule;
2323
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleAddRequest;
24+
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleInfo;
25+
import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleList;
2426
import org.apache.commons.lang3.ArrayUtils;
2527
import org.apache.commons.lang3.StringUtils;
2628

@@ -740,6 +742,19 @@ public void delInterceptRule(String ruleId) throws WxErrorException {
740742
GsonHelper.buildJsonObject("rule_id", ruleId));
741743
}
742744

745+
@Override
746+
public WxCpInterceptRuleList getInterceptRuleList() throws WxErrorException {
747+
String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_INTERCEPT_RULE_LIST);
748+
return WxCpInterceptRuleList.fromJson(this.mainService.get(url,null));
749+
}
750+
751+
@Override
752+
public WxCpInterceptRuleInfo getInterceptRuleDetail(String ruleId) throws WxErrorException {
753+
String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_INTERCEPT_RULE);
754+
String json = this.mainService.post(url, GsonHelper.buildJsonObject("rule_id", ruleId));
755+
return WxCpInterceptRuleInfo.fromJson(json);
756+
}
757+
743758
@Override
744759
public String addProductAlbum(WxCpProductAlbumInfo wxCpProductAlbumInfo) throws WxErrorException {
745760
String url = this.mainService.getWxCpConfigStorage().getApiUrl(ADD_PRODUCT_ALBUM);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package me.chanjar.weixin.cp.bean.external.interceptrule;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import lombok.EqualsAndHashCode;
6+
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
7+
import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionInfo;
8+
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
9+
10+
import java.io.Serializable;
11+
import java.util.List;
12+
13+
/**
14+
* @Date: 2024-03-07 17:02
15+
* @Author: shenliuming
16+
* @return:
17+
*/
18+
@Data
19+
@EqualsAndHashCode(callSuper = true)
20+
public class WxCpInterceptRuleInfo extends WxCpBaseResp implements Serializable {
21+
22+
private static final long serialVersionUID = -425957862453041229L;
23+
24+
@SerializedName("rule")
25+
private Rule rule;
26+
27+
@Data
28+
@EqualsAndHashCode(callSuper = false)
29+
public static class Rule implements Serializable {
30+
@SerializedName("rule_id")
31+
private String ruleId;
32+
33+
@SerializedName("rule_name")
34+
private String ruleName;
35+
36+
@SerializedName("word_list")
37+
private List<String> wordList;
38+
39+
@SerializedName("semantics_list")
40+
private List<Integer> semanticsList;
41+
42+
@SerializedName("intercept_type")
43+
private Integer interceptType;
44+
45+
@SerializedName("applicable_range")
46+
private ApplicableRange applicableRange;
47+
48+
@SerializedName("create_time")
49+
private long createTime;
50+
51+
}
52+
53+
54+
public static WxCpInterceptRuleInfo fromJson(String json) {
55+
return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleInfo.class);
56+
}
57+
58+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package me.chanjar.weixin.cp.bean.external.interceptrule;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.*;
5+
import me.chanjar.weixin.common.bean.ToJson;
6+
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
7+
import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionInfo;
8+
import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionList;
9+
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
10+
11+
import java.io.Serializable;
12+
import java.util.List;
13+
14+
/**
15+
* @Date: 2024-03-07 15:54
16+
* @Author: shenliuming
17+
* @return:
18+
*/
19+
@Data
20+
@EqualsAndHashCode(callSuper = true)
21+
public class WxCpInterceptRuleList extends WxCpBaseResp implements Serializable {
22+
23+
private static final long serialVersionUID = -830298362453041229L;
24+
/**
25+
* link_id列表
26+
*/
27+
@SerializedName("rule_list")
28+
private List<Rule> ruleList;
29+
30+
public static WxCpInterceptRuleList fromJson(String json) {
31+
return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleList.class);
32+
}
33+
34+
@Data
35+
@EqualsAndHashCode(callSuper = false)
36+
public static class Rule implements Serializable {
37+
private static final long serialVersionUID = 4750537220968228300L;
38+
39+
/**
40+
* 规则id
41+
*/
42+
@SerializedName("rule_id")
43+
private String ruleId;
44+
45+
/**
46+
* 规则名称,长度上限20个字符
47+
*/
48+
@SerializedName("rule_name")
49+
private String ruleName;
50+
51+
/**
52+
* 创建时间
53+
*/
54+
@SerializedName("create_time")
55+
private Long createTime;
56+
57+
public static WxCpInterceptRuleList.Rule fromJson(String json) {
58+
return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleList.Rule.class);
59+
}
60+
}
61+
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,14 @@ interface ExternalContact {
13441344
* The constant DEL_INTERCEPT_RULE.
13451345
*/
13461346
String DEL_INTERCEPT_RULE = "/cgi-bin/externalcontact/del_intercept_rule";
1347+
/**
1348+
* 获取敏感词规则列表
1349+
*/
1350+
String GET_INTERCEPT_RULE_LIST = "/cgi-bin/externalcontact/get_intercept_rule_list";
1351+
/**
1352+
* 获取敏感词规则详情
1353+
*/
1354+
String GET_INTERCEPT_RULE = "/cgi-bin/externalcontact/get_intercept_rule";
13471355
/**
13481356
* 获取当前仍然有效的获客链接
13491357
*/

0 commit comments

Comments
 (0)