掌握用户的第一步是保存已经关注的粉丝信息,此时使用获取用户列表的界面。微信官方账号可以通过这个界面获取账号的关注者列表,关注者列表由一系列OpenID组成(加密微信号,每个用户对每个微信官方账号的OpenID是唯一的)。一次拉取调用最多拉取1万个关注者的OpenID,可以通过多次拉取满足需求。
1.获取微信关注用户列表的界面调用实例
界面描述
Http请求模式:GET
接口调用地址:
https://api.weixin.qq.com/cgi-bin/user/get?ACCESS _ token=ACCESS _ token NEXT _ OPENID=NEXT _ OPENID
请求参数描述,如下表所示:
参数
有必要吗
解释
访问令牌
是
调用接口凭据
next_openid
是
第一次拉OPENID,不要从头开始填写默认拉
回到描述:
正常情况下,微信会将JSON包返回微信官方账号,如下图:
{'total':2,' count':2,' data':{'openid':[' ',' OPENID1 ',' OPENID2']},' NEXT _ OPENID ' : ' NEXT _ OPENID ' }
返回信息参数描述,如下表所示:
参数
解释
总数
注意这个公众账号的用户总数
数数
提取的OPENID的最大数量是10000
数据
列表数据,OPENID列表
next_openid
拉列表中最后一个用户的OPENID
使用程序调用接口获取、编码:
?Php/* *获取微信关注用户列表OpenID */require(' Wei _ function . PHP ');$ appid=' wx 78478 e 595939 c 538 ';$ secret=' 5540 E8 ccab 4f 71 dfad 752 f 73 CFB 85780 ';$ URL=' https://API . weixin . QQ.com/CGI-bin/token?grant _ type=client _ credential appid='。$appid。secret='。$秘密。'';$ output=get data($ URL);$tokenarr=(数组)JSON _ decode($ output);$ token=$ token arr[' access _ token '];//获取以下用户列表界面$ user URL=' https://api.weixin.qq.com/CGI-bin/user/get?访问_令牌='。$token。'';//接口通过getdata调用$ userarr=(数组)JSON _ decode(getdata($ user URL));//处理返回的信息并输出$ user openidarr=(array)$ user arr[' data '];print _ r($ user openidarr);代码解析
需要(' Wei _ function . PHP ');它包含wei_function.php这个函数文件可以作为《微信公众平台开发实例教程》购买,这在书的第95页有详细的解释。
就像从微信公众平台开发3-微信服务器IP接口实例(含源代码)获取微信服务器IP一样,获取access_token后,替换
$ user URL=' https://API . weixin . QQ.com/CGI-bin/user/get?access_token='。$token。'';
中的access_token参数,并通过getdata()函数获取返回的信息,处理后打印出来,如图所示。
如果关注用户数超过10,000,需要多次调用,只需在接口后添加next_openid=NEXT_OPENID的参数,next_openid在调用前一次时会返回这个值,比如:
$ user URL=' https://API . weixin . QQ.com/CGI-bin/user/get?access_token='。$token。NEXT _ OPENID=NEXT _ OPENID ';二、用户基本信息接口(UnionID机制)调用示例
通过获取关注用户列表界面获取用户的OpenID后,用户的基本信息,如昵称、城市、性别、用户头像、是否关注微信官方账号等。可以通过这个参数和调用获取用户基本信息的接口(UnionID机制)来获取。为了更好地理解用户,所有这些信息都需要保存在数据库中。
界面描述
Http请求模式:GET
接口调用地址:
https://api.weixin.qq.com/cgi-bin/user/info?ACCESS _ token=ACCESS _ token OpenID=Openidlang=zh _ CN
请求参数描述,如下表所示:
参数
有必要吗
解释
访问令牌
是
调用接口凭据
openid
是
普通用户标识,当前微信官方账号独有
语言
不
回到国语版,zh_CN简体,zh_TW繁体,en英语
回到描述:
正常情况下,微信会将JSON包返回微信官方账号,如下图:
{'subscribe' : 1,' OpenID ' : ' o6 _ bmjrptlm 6 _ 2 sgvt 7 hmzopfl2m ','昵称' :' band ',' sex' : 1,'语言' :' zh _ cn ','城市'省' : '广东','国家' : '中国',' head imgurl ' : ' http://wx . qlogo.cn/MMO pen/g3menoztnhkdmd
参数
解释
订阅
无论用户是否订阅微信官方账号ID,当值为0时,表示用户没有关注微信官方账号,无法拉取其余信息。
openid
用户标识,当前微信官方账号独有
绰号
用户的昵称
性
当值为1时,用户的性别为男性;当值为2时,用户的性别为女性;当值为0时,用户的性别未知
城市
用户所在的城市
国家
用户所在的国家
省
用户所在省份
语言
用户语言,简体中文为zh_CN
headimgurl
用户的头像,最后一个值代表方形头像的大小(0、46、64、96、132可选,0代表640*640方形头像),当用户没有头像时此项为空。如果用户更改头像,原头像网址将无效。
订阅时间
用户关注时间,这是一个时间戳。如果用户已经关注了很多次,以最后一次关注时间为准
unionid
该字段只有在用户将微信官方账号绑定到微信开放平台账号后才会出现。
注意
微信官方账号运营者对粉丝的评论微信官方账号运营者可以在微信公众平台的用户管理界面给粉丝添加评论
groupid
用户所在的数据包标识(与旧的用户数据包接口兼容)
tagid_list
用户标记的标签id列表
使用程序调用接口获取、编码:
?Php/* *获取微信用户基本信息*/require(' Wei _ function . PHP ');$ appid=' wx 78478 e 595939 c 538 ';$ secret=' 5540 E8 ccab 4f 71 dfad 752 f 73 CFB 85780 ';$ URL=' https://API . weixin . QQ.com/CGI-bin/token?grant _ type=client _ credential appid='。$appid。secret='。$秘密。'';$ output=get data($ URL);$tokenarr=(数组)JSON _ decode($ output);$ token=$ token arr[' access _ token '];//获取以下用户列表界面$ user URL=' https://api.weixin.qq.com/CGI-bin/user/get?访问_令牌='。$token。'';//接口通过getdata调用$ userarr=(数组)JSON _ decode(getdata($ user URL));//处理返回的信息并输出$ user openidarr=(array)$ user arr[' data '];foreach($ user openidarr[' OpenID ']为$ value){//循环获取用户基本信息$ infourl=' https://api.weixin.qq.com/CGI-bin/user/info? access _ token='。$token。openid='。$值。lang=zh _ CN ';$infoarr=(数组)JSON _ decode(getdata($ info URL));print _ r($ info arr);echo ' br/';}?代码解析
需要(' Wei _ function . PHP ');它包含wei_function.php这个函数文件可以作为《微信公众平台开发实例教程》购买,这在书的第95页有详细的解释。
获取用户的OpenID列表后,根据每个OpenID获取用户的基本信息。这里使用foreach循环
foreach($ user openidarr[' OpenID ']为$ value){//循环获取用户基本信息$ infourl=' https://api.weixin.qq.com/CGI-bin/user/info? access _ token='。$token。openid='。$值。lang=zh _ CN ';$infoarr=(数组)JSON _ decode(getdata($ info URL));print _ r($ info arr);echo ' br/';}运行结果如图所示。
如果需要将用户信息保存到数据库中,只需替换print _ r($ info arr);要增加数据库代码,例如:
foreach($ user openidarr[' OpenID ']作为$value) { //循环获取用户基本信息$ info URL=' https://API。微信。QQ。com/CGI-bin/user/info?access_token=' .$token .openid=' .$值lang=zh _ CN ';$infoarr=(数组)JSON _ decode(getdata($ info URL));//将用户信息增加到数据库$sql="插入到用户信息(` 0昵称`、`性`、`城市`)值(')中$infoarr['昵称']"','".$infoarr['sex']" ',' "。$ info arr[' city ']" ')";MySQL _ query($ SQL);}以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!