百变鹏仔-专注前端行业精选
当前位置:网站首页 > 最近更新 > 前端开发 > JavaScript > 正文

微信公众号开发 获取所有关注用户的openid 以及对应的用户信息

作者:鹏仔先生日期:2020-06-03 10:41:19浏览:2928分类:JavaScript


我们获取到 access_token ,接下来我们要用 access_token 来获取所有用户的 openid


首先,第一步,如果我们的公众号粉丝低于10000,可直接调用下方接口,拿到所有用户的列表以及openid

get请求

https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN


ACCESS_TOKEN 参数修改成以获取的参数值,安排

微信公众号开发 获取所有关注用户的openid 以及对应的用户信息

最终拿到所有用户的列表,如下

{
    "total": 18000,
    "count": 10000,
    "data": {
        "openid": [
            "openid001",
            "......",
            "openid10000",
        ]
    },
    "next_openid": "openid10000"
}

total 对应的是公众号的总粉丝(我写了18000不要在意,举个例子)

count 对应的是本次拿取到列表的总数,最大 10000

openid 数组里是拿到用户的列表 openid

next_openid 对应的是本次获取列表,最后一个用户的openid

那么获取小于10000粉丝就是这样拿到


接下来是 如果粉丝大于10000,可能七八万几十万不等,那么根据上方的只能拿到10000个用户,所以我们需要根据第一次调用接口,拿到的 next_openid 也就是最后一个 openid 来获取下次的10000用户,每次只能安排 10000

get请求

https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=openid10000

微信公众号开发 获取所有关注用户的openid 以及对应的用户信息


最终可拿到如下

{
    "total": 18000,
    "count": 8000,
    "data": {
        "openid": [
            "openid10001",
            "......",
            "openid18000",
        ]
    },
    "next_openid": "openid18000"
}

这样就拿到剩下的列表,每次最多安排 10000 数量,想获取更多,就通过上次调取拿到的参数值来调取下次的,安排。

好了,我们现在都可以拿到用户的 openid 了,那么再去拿到这些用户对应的基本信息,那么就 easy 了,安排


同样 get请求

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=openid18000&lang=zh_CN

微信公众号开发 获取所有关注用户的openid 以及对应的用户信息

access_token 是 调用接口凭证 
openid 是 普通用户的标识,对当前公众号唯一 
lang 否 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语 

最终拿到如下

{
    "subscribe": 1,
    "openid": "o5VOv50lvrreCZ-HNXy9Y3JQIDSU",
    "nickname": "百变鹏仔",
    "sex": 2,
    "language": "zh_CN",
    "city": "西安",
    "province": "陕西",
    "country": "中国",
    "headimgurl": "http://thirdwx.qlogo.cn/mmopen/0o3ee2qvanp4cjbicsxp2IqwX09YraGicBXIWCPPNOy7zshvT19CwAOrrqA5ahLyZdia88HC1WKdpYeKUmBkjHm6wMPaZpVupDia/132",
    "subscribe_time": 1545095249,
    "remark": "",
    "groupid": 0,
    "tagid_list": [],
    "subscribe_scene": "ADD_SCENE_QR_CODE",
    "qr_scene": 0,
    "qr_scene_str": ""
}

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_SCENEPROFILE LINK 图文页内名称点击,ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,ADD_SCENE_PAID 支付后关注,ADD_SCENE_OTHERS 其他 
qr_scene 二维码扫码场景(开发者自定义) 
qr_scene_str 二维码扫码场景描述(开发者自定义) 
好了,相信大家应该都拿到用户信息了,安排


具体大家可参考官方文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839


手机扫码访问

已有2位网友发表了看法:

  • 访客

    访客  评论于 [2020-10-13 18:44:39]  回复

    有一个问题, 拉取的openid 不是 按照关注的数据哦排序显示的,如何保证最新关注的人在列表的最后一条, 且会漏掉部分关注的用户,除非下次全量拉取, 可能会 拉取到

  • 访客

    访客  评论于 [2020-10-13 18:41:40]  回复

    有一个问题

取消回复欢迎 发表评论:

关灯