本文介紹在微信公眾平台上如何使用高級接口開發獲取關注者列表的功能。
一、接口介紹
公眾號可通過本接口來獲取帳號的關注者列表,關注者列表由一串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,不填默認從頭開始拉取
返回說明
正確時返回JSON數據包:
{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}
參數 說明
total 關注該公眾賬號的總用戶數
count 拉取的OPENID個數,最大值為10000
data 列表數據,OPENID的列表
next_openid 拉取列表的后一個用戶的OPENID
錯誤時返回JSON數據包(示例為無效AppID錯誤):
{"errcode":40013,"errmsg":"invalid appid"}
附:關注者數量超過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":"NEXT_OPENID1"
}
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":"NEXT_OPENID2"
}
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":" "
}
二、程序實現
$access_token = "";
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=$access_token";
$result = https_request($url);
$jsoninfo = json_decode($result, true);
var_dump($result);
招行后,返回類似如下:
{
"total": 200,
"count": 200,
"data": {
"openid": [
"o7Lp5t6n59DeX3U0C7Kric9qEx-Q",
"o7Lp5t5BZDl22PcjIliHp03kzgBE"
]
},
"next_openid": "o7Lp5t5BZDl22PcjIliHp03kzgBE"
}
對於超過1萬以后的數,循環執行上述程序即可,將這些openid存入數據庫,就獲得了關注者的列表。
該接口的作用主要是配合獲取用戶基本信息以及用戶分組接口,獲得所有關注者的基本信息及分組。