名著阅读 > 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 > 6.4.2 分批获取 >

6.4.2 分批获取

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

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

其示例如下。

微信公众号A拥有23000个关注用户,想通过拉取关注接口获取所有关注用户,那么需要3次请求,分别请求的URL如下。

第一次请求的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"
}
  

第二次请求的URL。


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"
}
  

第三次请求的URL。


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"
}