开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作。使用接口过程中有任何问题,可以前往微信开放社区 #公众号 专区发帖交流。
标签管理
1. 创建标签
一个公众号,最多可以创建100个标签。
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据示例:
{
"tag" : {
"name" : "广东" // 标签名,30个字节以内
}
}
返回说明(正常时返回的 json 数据包示例)
{
"tag": {
"id":134, // 标签 id,由微信分配
"name":"广东" // 标签名
}
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
45157 | 标签名非法,请注意不能和其他标签重名 | 检查标签名 |
45158 | 标签名长度超过30个字节 | 检查标签名 |
45056 | 创建的标签数过多,请注意不能超过100个 | 适当删减标签 |
2. 获取公众号已创建的标签
接口调用请求说明
http 请求方式: GET (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN
返回说明
{
"tags":[{
"id":1,
"name":"每天一罐可乐星人",
"count":0 // 此标签下粉丝数
},
{
"id":2,
"name":"星标组",
"count":0
},
{
"id":127,
"name":"广东",
"count":5
}
] }
3. 编辑标签
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/update?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据例子:
{
"tag" : {
"id" : 134,
"name" : "广东人"
}
}
返回说明
{
"errcode":0,
"errmsg":"ok"
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
45157 | 标签名非法,请注意不能和其他标签重名 | 检查标签名 |
45158 | 标签名长度超过30个字节 | 检查标签名 |
45058 | 不能修改0/1/2这三个系统默认保留的标签 |
4. 删除标签
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/delete?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据例子:
{
"tag": {
"id" : 134
}
}
返回说明
{
"errcode":0,
"errmsg":"ok"
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
45058 | 不能修改0/1/2这三个系统默认保留的标签 | |
45057 | 该标签下粉丝数超过10w,不允许直接删除 | 尝试先为粉丝取消标签 |
5. 获取标签下粉丝列表
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据例子:
{
"tagid" : 134,
"next_openid":"" // 第一个拉取的 openid,不填默认从头开始拉取
}
返回说明(正常时返回的 json 包示例)
{
"count":2, // 这次获取的粉丝数量
"data":{ // 粉丝列表
"openid":[
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
]
},
"next_openid":"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y" // 拉取列表最后一个用户的 openid
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
40003 | 传入非法的 openid | 检查下 openid |
45159 | 非法的 tagid | 检查下 tagid |
用户管理
标签功能目前支持公众号为用户打上最多20个标签。
1. 批量为用户打标签
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=ACCESS_TOKEN
POST 数据例子:
{
"openid_list" : [ //粉丝列表
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
],
"tagid" : 134,
"return_fail_openid": true // 可选, 若设置为 true 则当有部分 openid 打标失败时会在回包里给出
}
返回说明(正常时返回的 json 包示例)
{
"errcode":0,
"errmsg":"ok"
}
返回说明(return_fail_openid 设置为 true 且有部分 openid 失败时返回的 json 包示例)
{
"errcode":45171,
"errmsg":"some openid fail",
"fail_openid_list": [
"ocYxcuAEy30bX0NXmGn4ypqx3tI0"
]
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
40003 | 传入非法的 openid | 检查下 openid |
40032 | 每次传入的 openid 列表个数不能超过50个 | 调整 openid 列表个数 |
45059 | 有粉丝身上的标签数已经超过限制,即超过20个 | |
45159 | 非法的标签 | |
45169 | 一般是因为对同个 openid 并发打标/取消标签导致 | 重试,或者尽量避免对同个 openid 并发打标/取消标签 |
49003 | 传入的 openid 不属于此 AppID | 检查下 openid |
45171 | 当 return_fail_openid 设置为 true 且有部分 openid 失败时则会返回该错误码,同时会通过 fail_openid_list 把失败的 openid 告知开发者 | 部分 openid 失败一般是因为对应粉丝已经取关了 |
2. 批量为用户取消标签
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/members/batchuntagging?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据例子:
{
"openid_list" : [ //粉丝列表
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
],
"tagid" : 134,
"return_fail_openid": true // 可选, 若设置为 true 则当有部分 openid 取消标签失败时会在回包里给出
}
返回说明(正常时返回的 json 包示例)
{
"errcode":0,
"errmsg":"ok"
}
返回说明(return_fail_openid 设置为 true 且有部分 openid 失败时返回的 json 包示例)
{
"errcode":45171,
"errmsg":"some openid fail",
"fail_openid_list": [
"ocYxcuAEy30bX0NXmGn4ypqx3tI0"
]
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
40003 | 传入非法的 openid | 检查下 openid |
40032 | 每次传入的 openid 列表个数不能超过50个 | 调整 openid 列表个数 |
45159 | 非法的标签 | |
45169 | 一般是因为对同个 openid 并发打标/取消标签导致 | 重试,或者尽量避免对同个 openid 并发打标/取消标签 |
49003 | 传入的 openid 不属于此 AppID | 检查下 openid |
45171 | 当 return_fail_openid 设置为 true 且有部分 openid 失败时则会返回该错误码,同时会通过 fail_openid_list 把失败的 openid 告知开发者 | 部分 openid 失败一般是因为对应粉丝已经取关了 |
3. 获取用户身上的标签列表
接口调用请求说明
http 请求方式: POST (请使用 https 协议) https://api.weixin.qq.com/cgi-bin/tags/getidlist?access_token=ACCESS_TOKEN
POST 数据格式: JSON
POST 数据例子:
{
"openid" : "ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
}
返回说明(正常情况下返回的 json 示例)
{
"tagid_list": [ // 被打上的标签列表
134,
2
]
}
错误码说明
错误码 | 错误信息 | 解决方案 |
---|---|---|
公共错误码 | 点击查看 | |
40003 | 传入非法的 openid | 检查下 openid |
49003 | 传入的 openid 不属于此 AppID | 检查下 openid |