wx-tools 消息相关API
2023-03-22 17:20 更新
包括如下接口:
- sendAllByTag - 群发-通过标签
- sendAllByOpenid - 群发-通过openid
- sendAllPreview - 群发预览
- sendAllDelete - 删除群发
- sendAllGetStatus - 查询群发状态
- templateSetIndustry - 设置模板行业
- templateGetIndustry - 查询模板行业
- templateGetId - 获取模板ID
- templateGetList - 获取模板列表
- templateDelete - 删除模板
- templateSend - 发送模板
3.4.1 sendAllByTag 通过用户标签来群发
WxTagSender sender = new WxTagSender();
//设置哪些组需要接受群发
sender.setFilter(new SenderFilter(true, 1));
//群发文本内容
sender.setText(new Text("文本内容"));
try {
SenderResult result = iService.sendAllByTag(sender);
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
如果发其他类型的消息:
//群发图片,以此类推
sender.setImage(new Media("media_id"));
3.4.2 sendAllByOpenid 针对某群人的openid群发
WxOpenidSender sender = new WxOpenidSender();
List<String> openidList = new ArrayList<>();
openidList.add("openid1");
openidList.add("openid2");
sender.setTouser(openidList);
//群发文本内容
sender.setText(new Text("文本内容"));
try {
SenderResult result = iService.sendAllByOpenid(sender);
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.3 sendAllPreview 群发预览
PreviewSender sender = new PreviewSender();
//设置openid或者微信号,优先级为wxname高
sender.setTouser("openid");
sender.setTowxname("微信号");
//群发文本内容
sender.setText(new Text("文本内容"));
try {
SenderResult result = iService.sendAllPreview(sender);
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.4 sendAllDelete 删除群发
try {
//msg_id参数在群发接口中返回
SenderResult result = iService.sendAllDelete("msg_id");
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.5 sendAllGetStatus 获取群发状态
try {
SenderResult result = iService.sendAllGetStatus("msg_id");
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.6 templateSetIndustry 设置模板消息的行业
//行业代码参考官方文档。
try {
iService.templateSetIndustry("1", "4");
} catch (WxErrorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- 行业代码获取可参考官方文档
3.4.7 templateGetIndustry获取模板消息的行业设置
try {
IndustryResult result = iService.templateGetIndustry();
System.out.println(result.getPrimary_industry());
System.out.println(result.getSecondary_industry());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.8 templateGetId通过短ID获取模板ID
//模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
try {
TemplateResult result = iService.templateGetId("template_id_short");
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.9 templateGetList 获取模板列表
try {
TemplateListResult result = iService.templateGetList();
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.10 templateDelete 删除模板
try {
iService.templateDelete("template_id");
} catch (WxErrorException e) {
e.printStackTrace();
}
3.4.11 templateSend 模板消息发送
TemplateSender sender = new TemplateSender();
sender.setTouser("openid");
sender.setTemplate_id("templateId");
sender.setData("Object:与模板内容对应的对象");
sender.setUrl("url");
try {
TemplateSenderResult result = iService.templateSend(sender);
System.out.println(result.toString());
} catch (WxErrorException e) {
e.printStackTrace();
}
参数说明:
- openid需要发送给哪个用户
- templateId 模板ID
-
Data: 假设模板格式中有三个字段,分别为:
- first.DATA
- keyword1.DATA
- remark.DATA
那么就需要创建一个类, 里面包含三个成员变量.如:
public class Template{
private String first;
private String keyword1;
private String remark;
}
- Url 点击模板消息时跳转的页面.
以上内容是否对您有帮助:
更多建议: