微信公众号--用户管理

七、用户管理

1.用户标签管理

开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作。

(1)标签管理

1. 创建标签

一个公众号,最多可以创建100个标签。

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据示例:

    public function setUserTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{"tag":{"name":"辽宁"}}';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/create?access_token={$access_token}";
        $res = $this->curl_post($url, $data);
        return $res;
    }

参数说明

参数说明
access_token调用接口凭据
name标签名(30个字符以内)

返回说明(正常时返回的json数据包示例)

{
	"tag": {
		"id": 100,
		"name": "辽宁"
	}
}

返回参数说明

参数说明
id标签id,由微信分配
name标签名,UTF8编码

2. 获取公众号已创建的标签

接口调用请求说明

http请求方式:GET(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN

    public function getUserTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $url = "https://api.weixin.qq.com/cgi-bin/tags/get?access_token={$access_token}";
        $res = $this->baseHttpGet($url);
        return $res;
    }

返回说明

{
	"tags": [
		{
			"id": 2,
			"name": "星标组",
			"count": 0
		},
		{
			"id": 100,
			"name": "辽宁",
			"count": 0
		}
	]
}

3. 编辑标签

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/update?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据例子:

    public function updateUserTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{"tag":{"id":100,"name":"锦州"}}';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/update?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明

{
	"errcode": 0,
	"errmsg": "ok"
}

4. 删除标签

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/delete?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据例子:

    public function delUserTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{"tag":{"id":100}}';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/delete?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明

{
	"errcode": 0,
	"errmsg": "ok"
}

5. 获取标签下粉丝列表

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据例子:

    public function getFans()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{"tag":{"id":100}}';
        $url = "https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明(正常时返回的json包示例)

{
	"count": 2,
	"data": {
		"openid": [
			"oK4Vv6BY_lufXKBt2av53k_IZUew",
			"oK4Vv6HFEjXpcCak5tHQeuYN1BHc"
		]
	},
	"next_openid": "oK4Vv6HFEjXpcCak5tHQeuYN1BHc"
}

(2)用户管理

标签功能目前支持公众号为用户打上最多20个标签。

1. 批量为用户打标签

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=ACCESS_TOKEN

POST数据例子:

    public function setMembersTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{   
            "openid_list" : [ 
            "oK4Vv6BY_lufXKBt2av53k_IZUew",    
            "oK4Vv6HFEjXpcCak5tHQeuYN1BHc"   ],   
            "tagid" : 101
         }';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明(正常时返回的json包示例)

{   
    "errcode":0,   
    "errmsg":"ok"
} 

2. 批量为用户取消标签

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/members/batchuntagging?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据例子:

    public function delMembersTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{   
            "openid_list" : [ 
            "oK4Vv6BY_lufXKBt2av53k_IZUew",    
            "oK4Vv6HFEjXpcCak5tHQeuYN1BHc"   ],   
            "tagid" : 101
         }';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/members/batchuntagging?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明(正常时返回的json包示例)

{  
    "errcode":0,   
    "errmsg":"ok"
} 

3. 获取用户身上的标签列表

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/getidlist?access_token=ACCESS_TOKEN

POST数据格式:JSON POST数据例子:

    public function getMembersTag()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{"openid" :"oK4Vv6BY_lufXKBt2av53k_IZUew"}';
        $url = "https://api.weixin.qq.com/cgi-bin/tags/getidlist?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

返回说明(正常情况下返回的json示例)

{
	"tagid_list": [
		101
	]
}

2.设置用户备注名

开发者可以通过该接口对指定用户设置备注名,该接口暂时开放给微信认证的服务号。 接口调用请求说明

http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/user/info/updateremark?access_token=ACCESS_TOKEN

POST数据格式:JSON

POST数据例子:

    public function setRemark()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{
            "openid":"oK4Vv6BY_lufXKBt2av53k_IZUew",
            "remark":"pangzi"
        }';
        $url = "https://api.weixin.qq.com/cgi-bin/user/info/updateremark?access_token={$access_token}";
        $res = $this->baseHttpPost($url, $data);
        return $res;
    }

参数说明

参数说明
access_token调用接口凭证
openid用户标识
remark新的备注名,长度必须小于30字符

返回说明 正常时的返回JSON数据包示例:

{
"errcode":0,
"errmsg":"ok" 
}

3.获取用户基本信息(UnionID机制)

在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

UnionID机制说明:

开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

请注意: 20年6月8日起,用户关注来源“微信广告(ADD_SCENE_WECHAT_ADVERTISEMENT)”从“其他(ADD_SCENE_OTHERS)”中拆分给出。

(1)获取用户基本信息(包括UnionID机制)

开发者可通过OpenID来获取用户基本信息。请使用https协议。

接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

参数说明

参数是否必须说明
access_token调用接口凭证
openid普通用户的标识,对当前公众号唯一
lang返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
    public function getUserInfo()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$access_token}&openid=oK4Vv6BY_lufXKBt2av53k_IZUew&lang=zh_CN";
        $res = $this->baseHttpGet($url);
        return $res;
    }

返回参数说明

参数说明
subscribe用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
openid用户的标识,对当前公众号唯一
nickname用户的昵称
sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
city用户所在城市
country用户所在国家
province用户所在省份
language用户的语言,简体中文为zh_CN
headimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
subscribe_time用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
unionid只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
remark公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
groupid用户所在的分组ID(兼容旧的用户分组接口)
tagid_list用户被打上的标签ID列表
subscribe_scene返回用户关注的渠道来源,ADD_SCENE_SEARCH 公众号搜索,ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 扫描二维码,ADD_SCENE_PROFILE_LINK 图文页内名称点击,ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,ADD_SCENE_PAID 支付后关注,ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告,ADD_SCENE_OTHERS 其他
qr_scene二维码扫码场景(开发者自定义)
qr_scene_str二维码扫码场景描述(开发者自定义)

 

{
	"subscribe": 1,
	"openid": "oK4Vv6BY_lufXKBt2av53k_IZUew",
	"nickname": "C",
	"sex": 1,
	"language": "zh_CN",
	"city": "温州",
	"province": "浙江",
	"country": "中国",
	"headimgurl": "http://thirdwx.qlogo.cn/mmopen/7AYWPIUJN0cWRJepvoVmWVC4ToySF0KYbC0FdlUwA15jicvqNSa2V6WsgiaH2ibLBb5jnysvW0P4mRMUibB6xxOMbkayhMATQTty/132",
	"subscribe_time": 1621499789,
	"remark": "pangzi",
	"groupid": 101,
	"tagid_list": [
		101
	],
	"subscribe_scene": "ADD_SCENE_QR_CODE",
	"qr_scene": 0,
	"qr_scene_str": ""
}

(2)批量获取用户基本信息

开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

POST数据示例

    public function getAllUserInfo()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $data = '{
            "user_list": [
                {
                    "openid": "oK4Vv6BY_lufXKBt2av53k_IZUew", 
                    "lang": "zh_CN"
                }, 
                {
                    "openid": "oK4Vv6HFEjXpcCak5tHQeuYN1BHc", 
                    "lang": "zh_CN"
                }
            ]
        }';
        $url = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token={$access_token}";
        $res = $this->baseHttpPost($url,$data);
        return $res;
    }

参数说明

参数是否必须说明
openid用户的标识,对当前公众号唯一
lang国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN

返回说明

正常情况下,微信会返回下述JSON数据包给公众号(示例中为一次性拉取了2个openid的用户基本信息,第一个是已关注的,第二个是未关注的):

{
   "user_info_list": [
       {
           "subscribe": 1, 
           "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", 
           "nickname": "iWithery", 
           "sex": 1, 
           "language": "zh_CN", 
           "city": "揭阳", 
           "province": "广东", 
           "country": "中国", 

           "headimgurl": "http://thirdwx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",

          "subscribe_time": 1434093047, 
           "unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4", 
           "remark": "", 

           "groupid": 0,
           "tagid_list":[128,2],
           "subscribe_scene": "ADD_SCENE_QR_CODE",
           "qr_scene": 98765,
           "qr_scene_str": ""

      }, 
       {
           "subscribe": 0, 
           "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg"
       }
   ]
}

参数说明

参数说明
subscribe用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
openid用户的标识,对当前公众号唯一
nickname用户的昵称
sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
city用户所在城市
country用户所在国家
province用户所在省份
language用户的语言,简体中文为zh_CN
headimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
subscribe_time用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
unionid只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
remark公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
groupid用户所在的分组ID(暂时兼容用户分组旧接口)
tagid_list用户被打上的标签ID列表
subscribe_scene返回用户关注的渠道来源,ADD_SCENE_SEARCH 公众号搜索,ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 扫描二维码,ADD_SCENE_PROFILE_LINK 图文页内名称点击,ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,ADD_SCENE_PAID 支付后关注,ADD_SCENE_WECHAT_ADVERTISEMENT 微信广告,ADD_SCENE_OTHERS 其他
qr_scene二维码扫码场景(开发者自定义)
qr_scene_str二维码扫码场景描述(开发者自定义)

4.获取用户列表

公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求。

接口调用请求说明

http请求方式: GET(请使用https协议)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

参数是否必须说明
access_token调用接口凭证
next_openid第一个拉取的OPENID,不填默认从头开始拉取
    public function getUserList()
    {
        if (!cache('app_access_token')) {
            $this->cacha_token();
        }
        $access_token = cache('app_access_token');
        $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={$access_token}";
        $res = $this->baseHttpGet($url);
        return $res;
    }

返回说明

正确时返回JSON数据包:

{
    "total":2,
    "count":2,
    "data":{
    "openid":["OPENID1","OPENID2"]},
    "next_openid":"NEXT_OPENID"
}
参数说明
total关注该公众账号的总用户数
count拉取的OPENID个数,最大值为10000
data列表数据,OPENID的列表
next_openid拉取列表的最后一个用户的OPENID

附:关注者数量超过10000时

当公众号关注者数量超过10000时,可通过填写next_openid的值,从而多次拉取列表的方式来满足需求。

具体而言,就是在调用接口时,将上一次调用得到的返回中的next_openid值,作为下一次调用中的next_openid值。

示例如下:

公众账号A拥有23000个关注的人,想通过拉取关注接口获取所有关注的人,那么分别请求url如下:https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN 返回结果:
{
  "total":23000,
  "count":10000,
  "data":{"
     openid":[
        "OPENID1",
        "OPENID2",
        ...,
        "OPENID10000"
     ]
   },
   "next_openid":"OPENID10000"
}https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID1返回结果:
{
   "total":23000,
   "count":10000,
   "data":{
     "openid":[
       "OPENID10001",
       "OPENID10002",
       ...,
       "OPENID20000"
     ]
   },
   "next_openid":"OPENID20000"
}https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID2返回结果(关注者列表已返回完时,返回next_openid为空):
{
   "total":23000,
   "count":3000,
   "data":{"
       "openid":[
         "OPENID20001",
         "OPENID20002",
         ...,
         "OPENID23000"
       ]
   },
   "next_openid":"OPENID23000"
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值