微信公众平台开发(14)--标签管理与用户标签管理

简介: 本文目录1. 公众号标签的概念2. 相关接口3. 代码编写4. 测试4.1 获取标签4.2 获取用户列表4.3 为用户添加标签4.4 查询标签5. 小结

1. 公众号标签的概念

用户关注我们的公众号后,我们可以给该用户赋予一个或者多个标签,便于区分用户群体。


这样的好处是,我们在群发消息的时候,指定发送用户的标签,这样消息就能群发给指定群体了。


2. 相关接口

我们封装了以下接口,可以实现标签的创建、获取、更新。


同时也封装了跟用户相关的接口,可以为用户添加、移除标签,或者查询用户已有的标签信息。



3. 代码编写

通过控制器开发API接口即可,相关功能均可直接调用WxMpService封装的方法实现。



/**

* 标签控制器(标签管理、用户标签管理)

*/

@Api(tags = "标签管理API")

@RestController

public class TagController {

@Autowired

private WxMpService wxMpService;


@ApiOperation(value = "获取标签")

@PostMapping("/tagGet")

public List<WxUserTag> tagGet() throws WxErrorException {

 List<WxUserTag> res = wxMpService.getUserTagService().tagGet();

 return res;

}


@ApiOperation(value = "创建标签")

@PostMapping("/tagCreate")

public WxUserTag tagCreate(@RequestParam("tagName") String tagName) throws WxErrorException {

 WxUserTag res = wxMpService.getUserTagService().tagCreate(tagName);

 return res;

}


@ApiOperation(value = "更新标签")

@PostMapping("/tagUpdate")

public boolean tagUpdate(@RequestParam("tagId") Long tagId, @RequestParam("tagName") String tagName) throws WxErrorException {

 Boolean res = wxMpService.getUserTagService().tagUpdate(tagId, tagName);

 return res;

}


@ApiOperation(value = "查询用户标签列表")

@PostMapping("/userTagList")

public List<Long> userTagList(@RequestParam("openid") String openid) throws WxErrorException {

 List<Long> tags = wxMpService.getUserTagService().userTagList(openid);

 return tags;

}


@ApiOperation(value = "批量为用户添加标签")

@PostMapping("/batchTagging")

public boolean batchTagging(@RequestParam("openids") String[] openids, @RequestParam("tagid") Long tagid) throws WxErrorException {

 return wxMpService.getUserTagService().batchTagging(tagid, openids);

}


@ApiOperation(value = "批量给用户移除标签")

@PostMapping("/batchUntagging")

public boolean batchUntagging(@RequestParam("openids") String[] openids, @RequestParam("tagid") Long tagid) throws WxErrorException {

 return wxMpService.getUserTagService().batchUntagging(tagid, openids);

}

}


4. 测试

4.1 获取标签

首先我们调用/tagGet获取下标签信息,返回如下,说明我们的公众号有两个标签了,每个标签相关的人数也显示出来。


[

 {

   "id": 2,

   "name": "星标组",

   "count": 1

 },

 {

   "id": 100,

   "name": "杀马特",

   "count": 0

 }

]


4.2 获取用户列表

然后我们通过/userList获取用户列表,以便得到用户的openid,结果如下:


{

 "total": 1,

 "count": 1,

 "openids": [

   "oINiq6UqTiKqfXN3H6RmeKvvRnmw"

 ],

 "nextOpenid": "oINiq6UqTiKqfXN3H6RmeKvvRnmw"

}


4.3 为用户添加标签

再然后,我们为该用户添加杀马特这个标签,对应id为100,所以调用/batchTagging为该用户添加标签,如下图我们输入参数:


执行后返回结果如下,返回true说明我们的接口调用成功了。



4.4 查询标签

接下来我们查询下该用户已有的标签,调用/userTagList,返回值如下,可见用户已经成功跟id=100的标签关联上了。


[

 2,

 100

]


5. 小结

本篇介绍了如何管理标签,同时介绍了如何管理用户的标签。

相关文章
|
小程序 PHP
微信公众号开发(一)打通服务器与微信之间的通信
说来惭愧PHP做了这么久,好像就没有从头开发过一个微信公众号,这次刚好有机会从头接入开发一个完整的公众号,也不能说完整,但是这些微信的接口我基本上都试一试~看看大概是什么情况。 首先:打通服务器与微信之间的通信。
142 0
|
7月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
174 0
|
6月前
|
Java API
java进行微信公众号开发
java进行微信公众号开发
157 0
|
7月前
|
人工智能 Python
【Python + 微信】微信公众号开发避坑指南
【Python + 微信】微信公众号开发避坑指南
133 0
|
7月前
|
XML 安全 Java
如何开发微信公众号后台
如何开发微信公众号后台
181 0
|
7月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
273 0
|
7月前
|
XML Go 数据格式
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
【微信公众号开发】基于golang的公众号开发——接入消息自动回复接口
439 0
|
小程序 PHP 开发者
微信公众号开发(八)生成带参数二维码,以及将二维码下载至本地
微信的二维码真是个神奇的东西。在我们开发中,应用也是很多~ 用户扫描带场景值(参数)二维码时,可能推送以下两种事件:
423 1
|
XML 移动开发 小程序
微信公众号开发(七)微信h5跳转小程序及小游戏示例
最近公司做活动,需要从h5页面跳转至微信小游戏。 当时接到这个需求的时候,就在想,这玩意能相互跳转么? 后来百度了一下,还真行。
303 1
|
JavaScript 前端开发 API
04 微信公众号开发原理
04 微信公众号开发原理
137 0
04 微信公众号开发原理