05-获取关注我们公众号的微信号的Openid列表

获取关注者列表(OpenID)

如果想要群发消息,需要先获取所有的微信号。本节课讲解如何获取所有的微信号。

其实并不是真正获取这些微信号的用户信息,只需要获取它的 openid 就可以了。有了这个 openid,就可以对它进行发送短消息。

获取用户列表接口说明

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

HTTP 请求方式:GET(请使用 https 协议)

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

NEXT_OPENID 为第一个拉取的 OPENID,不填默认从头开始拉取。如果要获取 10001 之后的关注者的 openid,就要填写第 10000 个的 openid 到 NEXT_OPENID 参数中。如果平常用户不多,可以不填。

只需要请求以下地址即可:

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

添加获取用户的 Handler

public class UserGetHandler : WeiXinHandlerBase, IWeiXinHandler
{
    private string url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={0}&next_openid=";

    public T DoGet<T>(params string[] param) where T : class
    {
        url = string.Format(url, accessTokenInfo.access_token);
        var json = HtmlHelper.HttpGet(url);
        //if (json.Contains("errcode"))
        //{
        //    这里就表示出错了
        //}
        var output = JsonHelper.DeserializeJsonToObject<T>(json);
        return output;
    }

    public T DoPost<T>(params string[] param) where T : class
    {
        throw new NotImplementedException();
    }
}Code language: HTML, XML (xml)

控制器中调用

public IActionResult UserGet()
{
    var result = new UserGetHandler().DoGet<UserInfo>();
    return Json(result);
}Code language: PHP (php)

序列化实体对象

public class UserInfo
{
    public int total { set; get; }
    public int count { set; get; }
    public OpenIDInfo data = new OpenIDInfo();
    public string next_openid { set; get; }
}

public class OpenIDInfo
{
    public string[] openid { set; get; }
}Code language: JavaScript (javascript)

访问测试

访问地址:

http://dsfdsfdsf.imwork.net/home/userget

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注