• 接口 https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=@access_token 返回参数及输入参数说明链接官网 ... 直接贴方法咯 ///

    接口  https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=@access_token

    返回参数及输入参数说明链接官网 http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html


    直接贴方法咯

            /// <summary>
            /// 批量获取用户基本信息
            /// </summary>
            /// <param name="accessTokenOrAppId"></param>
            /// <param name="userList"></param>
            /// <param name="timeOut"></param>
            /// <returns></returns>
            public static BatchGetUserInfoJson BatchGetUserInfo(string accessTokenOrAppId, List<BatchGetUserInfoData> userList, int timeOut = Config.TIME_OUT)
            {
                return ApiHandlerWapper.TryCommonApi(accessToken =>
                {
                    string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token={0}",
                        accessToken);
                    var data = new
                    {
                        user_list = userList,
                    };
                    return CommonJsonSend.Send<BatchGetUserInfoJson>(accessToken, url, data, timeOut: timeOut);
    
                }, accessTokenOrAppId);
            }


    用户基本信息类和 top方法返回类,可以写在同一个命名空间下

       /// </summary>
        public class UserInfoJson : WxJsonResult
        {
            /// <summary>
            /// 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
            /// </summary>
            public int subscribe { get; set; }
            public string openid { get; set; }
            public string nickname { get; set; }
            public int sex { get; set; }
            public string language { get; set; }
            public string city { get; set; }
            public string province { get; set; }
            public string country { get; set; }
            public string headimgurl { get; set; }
            public long subscribe_time { get; set; }
            public string unionid { get; set; }
            public string remark { get; set; }
            public int groupid { get; set; }
        }
    
        /// <summary>
        /// 批量获取用户基本信息返回结果
        /// </summary>
        public class BatchGetUserInfoJson : WxJsonResult
        {
            public List<UserInfoJson> user_info_list { get; set; }
        }




    WxJsonResult Json返回结果(用于菜单接口)
    <pre name="code" class="csharp">    public class WxJsonResult
        {
            public  ReturnCode errcode { get; set; }
            public string errmsg { get; set; }
            /// <summary>
            /// 为P2P返回结果做准备
            /// </summary>
            public virtual object P2PData { get; set; }
           
        }


    
    
    
    


    ReturnCode 枚举返回码  顺便把批量返回语言的枚举Language <pre name="code" class="csharp">也贴了
    
    
    
    
    
    <pre name="code" class="csharp">   /// <summary>
        /// 返回码(JSON)
        /// </summary>
        public enum ReturnCode
        {
            系统繁忙此时请开发者稍候再试 = -1,
            请求成功 = 0,
            获取access_token时AppSecret错误或者access_token无效 = 40001,
            不合法的凭证类型 = 40002,
            不合法的OpenID = 40003,
            不合法的媒体文件类型 = 40004,
            不合法的文件类型 = 40005,
            不合法的文件大小 = 40006,
            不合法的媒体文件id = 40007,
            不合法的消息类型 = 40008,
            不合法的图片文件大小 = 40009,
            不合法的语音文件大小 = 40010,
            不合法的视频文件大小 = 40011,
            不合法的缩略图文件大小 = 40012,
            不合法的APPID = 40013,
            不合法的access_token = 40014,
            不合法的菜单类型 = 40015,
            不合法的按钮个数1 = 40016,
            不合法的按钮个数2 = 40017,
            不合法的按钮名字长度 = 40018,
            不合法的按钮KEY长度 = 40019,
            不合法的按钮URL长度 = 40020,
            不合法的菜单版本号 = 40021,
            不合法的子菜单级数 = 40022,
            不合法的子菜单按钮个数 = 40023,
            不合法的子菜单按钮类型 = 40024,
            不合法的子菜单按钮名字长度 = 40025,
            不合法的子菜单按钮KEY长度 = 40026,
            不合法的子菜单按钮URL长度 = 40027,
            不合法的自定义菜单使用用户 = 40028,
            不合法的oauth_code = 40029,
            不合法的refresh_token = 40030,
            不合法的openid列表 = 40031,
            不合法的openid列表长度 = 40032,
            不合法的请求字符不能包含uxxxx格式的字符 = 40033,
            不合法的参数 = 40035,
            不合法的请求格式 = 40038,
            不合法的URL长度 = 40039,
            不合法的分组id = 40050,
            分组名字不合法 = 40051,
            缺少access_token参数 = 41001,
            缺少appid参数 = 41002,
            缺少refresh_token参数 = 41003,
            缺少secret参数 = 41004,
            缺少多媒体文件数据 = 41005,
            缺少media_id参数 = 41006,
            缺少子菜单数据 = 41007,
            缺少oauth_code = 41008,
            缺少openid = 41009,
            access_token超时 = 42001,
            refresh_token超时 = 42002,
            oauth_code超时 = 42003,
            需要GET请求 = 43001,
            需要POST请求 = 43002,
            需要HTTPS请求 = 43003,
            需要接收者关注 = 43004,
            需要好友关系 = 43005,
            多媒体文件为空 = 44001,
            POST的数据包为空 = 44002,
            图文消息内容为空 = 44003,
            文本消息内容为空 = 44004,
            多媒体文件大小超过限制 = 45001,
            消息内容超过限制 = 45002,
            标题字段超过限制 = 45003,
            描述字段超过限制 = 45004,
            链接字段超过限制 = 45005,
            图片链接字段超过限制 = 45006,
            语音播放时间超过限制 = 45007,
            图文消息超过限制 = 45008,
            接口调用超过限制 = 45009,
            创建菜单个数超过限制 = 45010,
            回复时间超过限制 = 45015,
            系统分组不允许修改 = 45016,
            分组名字过长 = 45017,
            分组数量超过上限 = 45018,
            不存在媒体数据 = 46001,
            不存在的菜单版本 = 46002,
            不存在的菜单数据 = 46003,
            解析JSON_XML内容错误 = 47001,
            api功能未授权 = 48001,
            用户未授权该api = 50001,
            参数错误invalid_parameter = 61451,
            无效客服账号invalid_kf_account = 61452,
            客服帐号已存在kf_account_exsited = 61453,
            /// <summary>
            /// 客服帐号名长度超过限制(仅允许10个英文字符,不包括@及@后的公众号的微信号)(invalid kf_acount length) 
            /// </summary>
            客服帐号名长度超过限制 = 61454,
            /// <summary>
            /// 客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account) 
            /// </summary>
            客服帐号名包含非法字符 = 61455,
            /// <summary>
            ///  	客服帐号个数超过限制(10个客服账号)(kf_account count exceeded) 
            /// </summary>
            客服帐号个数超过限制 = 61456,
            无效头像文件类型invalid_file_type = 61457,
            系统错误system_error = 61450,
            日期格式错误 = 61500,
            日期范围错误 = 61501,
    
            //新加入的一些类型,以下文字根据P2P项目格式组织,非官方文字
            发送消息失败_48小时内用户未互动 = 10706,
            发送消息失败_该用户已被加入黑名单_无法向此发送消息 = 62751,
            发送消息失败_对方关闭了接收消息 = 10703,
            对方不是粉丝 = 10700
    
    
        }
    
    
    
        /// <summary>
        /// 语言
        /// </summary>
        public enum Language
        {
            /// <summary>
            /// 中文简体
            /// </summary>
            zh_CN,
            /// <summary>
            /// 中文繁体
            /// </summary>
            zh_TW,
            /// <summary>
            /// 英文
            /// </summary>
            en
        }
    


    
    
    
    
    参数  BatchGetUserInfoData类  
    
    
    <pre name="code" class="csharp">    public class BatchGetUserInfoData
        {
            /// <summary>
            /// 用户的标识,对当前公众号唯一
            /// 必填
            /// </summary>
            public string openid { get; set; }
    
            /// <summary>
            /// 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN
            /// 非必填
            /// </summary>
            public Language lang { get; set; }
    
     
        }


    
    
    
    
    
    
    HB类ApiHandlerWapper  


       /// <summary>
        /// 针对AccessToken无效或过期的自动处理类
        /// </summary>
        public static class ApiHandlerWapper
        {
            /// <summary>
            /// 使用AccessToken进行操作时,如果遇到AccessToken错误的情况,重新获取AccessToken一次,并重试。
            /// 使用此方法之前必须使用AccessTokenContainer.Register(_appId, _appSecret);或JsApiTicketContainer.Register(_appId, _appSecret);方法对账号信息进行过注册,否则会出错。
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fun"></param>
            /// <param name="accessTokenOrAppId">AccessToken或AppId。如果为null,则自动取已经注册的第一个appId/appSecret来信息获取AccessToken。</param>
            /// <param name="retryIfFaild">请保留默认值true,不用输入。</param>
            /// <returns></returns>
            public static T TryCommonApi<T>(Func<string, T> fun, string accessTokenOrAppId = null, bool retryIfFaild = true) where T : WxJsonResult
            {
                string appId = null;
                string accessToken = null;
    
                if (accessTokenOrAppId == null)
                {
                    appId = AccessTokenContainer.GetFirstOrDefaultAppId();
                    if (appId == null)
                    {
                        throw new WeixinException("尚无已经注册的AppId,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!");
                    }
                }
                else if (ApiUtility.IsAppId(accessTokenOrAppId))
                {
                    if (!AccessTokenContainer.CheckRegistered(accessTokenOrAppId))
                    {
                        throw new WeixinException("此appId尚未注册,请先使用AccessTokenContainer.Register完成注册(全局执行一次即可)!");
                    }
    
                    appId = accessTokenOrAppId;
                }
                else
                {
                    //accessToken
                    accessToken = accessTokenOrAppId;
                }
    
    
                T result = null;
    
                try
                {
                    if (accessToken == null)
                    {
                        var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(appId, false);
                        accessToken = accessTokenResult.access_token;
                    }
                    result = fun(accessToken);
                }
                catch (ErrorJsonResultException ex)
                {
                    if (retryIfFaild
                        && appId != null
                        && ex.JsonResult.errcode == ReturnCode.获取access_token时AppSecret错误或者access_token无效)
                    {
                        //尝试重新验证
                        var accessTokenResult = AccessTokenContainer.GetAccessTokenResult(appId, true);//强制获取并刷新最新的AccessToken
                        accessToken = accessTokenResult.access_token;
                        result = TryCommonApi(fun, appId, false);
                    }
                    else
                    {
                        throw;
                    }
                }
           
                return result;
            }
    
            /// <summary>
            /// 使用AccessToken进行操作时,如果遇到AccessToken错误的情况,重新获取AccessToken一次,并重试
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="appId"></param>
            /// <param name="appSecret"></param>
            /// <param name="fun">第一个参数为accessToken</param>
            /// <param name="retryIfFaild"></param>
            /// <returns></returns>
            [Obsolete("请使用TryCommonApi()方法")]
            public static T Do<T>(Func<string, T> fun, string appId, string appSecret, bool retryIfFaild = true)
                where T : WxJsonResult
            {
                T result = null;
                try
                {
                    var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret, false);
                    result = fun(accessToken);
                }
                catch (ErrorJsonResultException ex)
                {
                    if (retryIfFaild && ex.JsonResult.errcode == ReturnCode.获取access_token时AppSecret错误或者access_token无效)
                    {
                        //尝试重新验证
                        var accessToken = AccessTokenContainer.TryGetAccessToken(appId, appSecret, true);
                        result = Do(fun, appId, appSecret, false);
                    }
                }
                return result;
            }
    
        }

    类 
    AccessTokenContainer 里面包含ApiHandlerWapper  检验方法
    <pre name="code" class="csharp">        /// <summary>
            /// 返回已经注册的第一个AppId
            /// </summary>
            /// <returns></returns>
            public static string GetFirstOrDefaultAppId()
            {
                return ItemCollection.Keys.FirstOrDefault();
            }


    
    

    这些感觉都是没用的代码,也不删了, 就是为第一个方法做反射,return 出

    BatchGetUserInfoJson对象 


    展开全文
  • 微信提供一种可以批量获取用户信息的方法, 只要你熟悉了上节课的内容, 这个方法对你来说也非常简单…… 需要注意的是, 即使是批量获取公众号用户信息, 一次最多可以获取100个粉

    使用上一节课程的方式,

    只能一条一条地获取用户信息,

    如果公众号的粉丝有几十万,上百万时,

    使用那个方法的效率就显得很慢了。


    微信提供一种可以批量获取用户信息的方法,

    只要你熟悉了上节课的内容,

    这个方法对你来说也非常简单……


    公众号批量获取用户信息


    需要注意的是,

    即使是批量获取公众号用户信息,

    一次最多可以获取100个粉丝用户!

    公众号批量获取用户信息视频教程在线观看

    http://edu.csdn.net/course/play/2963/48748

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

    请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

    UnionID机制说明:

    开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

    获取用户基本信息(包括UnionID机制)

    开发者可通过OpenID来获取用户基本信息。请使用https协议。

    接口调用请求说明

    http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    参数说明

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

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号:

    {     "subscribe": 1,      "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",      "nickname": "Band",      "sex": 1,      "language": "zh_CN",      "city": "广州",      "province": "广东",      "country": "中国",      "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",     "subscribe_time": 1382694957,    "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"    "remark": "",    "groupid": 0 }

    参数说明

    参数 说明
    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 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
    remark 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid 用户所在的分组ID

    错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

    {"errcode":40013,"errmsg":"invalid appid"}

    全局返回码说明

    使用网页调试工具调试该接口

    批量获取用户基本信息

    开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。

    接口调用请求说明

    http请求方式: POST https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

    POST数据示例

    {     "user_list": [         {             "openid": "otvxTs4dckWG7imySrJd6jSi0CWE",              "lang": "zh-CN"         },          {             "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg",              "lang": "zh-CN"         }     ] }

    参数说明

    参数 是否必须 说明
    openid 用户的标识,对当前公众号唯一
    lang 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号(示例中为一次性拉取了2个openid的用户基本信息,第一个是已关注的,第二个是未关注的):

    {    "user_info_list": [        {            "subscribe": 1,             "openid": "otvxTs4dckWG7imySrJd6jSi0CWE",             "nickname": "iWithery",             "sex": 1,             "language": "zh_CN",             "city": "Jieyang",             "province": "Guangdong",             "country": "China",             "headimgurl": "http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",             "subscribe_time": 1434093047,             "unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4",             "remark": "",             "groupid": 0        },         {            "subscribe": 0,             "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg",             "unionid": "oR5GjjjrbqBZbrnPwwmSxFukE41U",         }    ] }

    参数说明

    参数 说明
    subscribe 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息,只有openid和UnionID(在该公众号绑定到了微信开放平台账号时才有)。
    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 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
    remark 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid 用户所在的分组ID

    错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

    {"errcode":40013,"errmsg":"invalid appid"}

    转载于:https://my.oschina.net/superkangning/blog/476911

    展开全文
  • 为了帮助开发者提高效率,微信公众平台的用户管理接口中,新增了批量获取用户基本信息的接口。  同时,为了保障公众号第三方平台的业务运营,该接口已放入用户管理权限集中。只要公众号将该权限集授权给第三方平台...

      为了帮助开发者提高效率,微信公众平台的用户管理接口中,新增了批量获取用户基本信息的接口。

       同时,为了保障公众号第三方平台的业务运营,该接口已放入用户管理权限集中。只要公众号将该权限集授权给第三方平台(包括历史授权的公众号),第三方平台就可以帮助它调用该接口。

      获取用户基本信息(UnionID机制)

      

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众 号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

    请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

    UnionID机制说明:

    开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
    

    获取用户基本信息(包括UnionID机制)

    开发者可通过OpenID来获取用户基本信息。请使用https协议。

    接口调用请求说明

    http请求方式: GET
    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    

    参数说明

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

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号:

    {
        "subscribe": 1, 
        "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
        "nickname": "Band", 
        "sex": 1, 
        "language": "zh_CN", 
        "city": "广州", 
        "province": "广东", 
        "country": "中国", 
        "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", 
       "subscribe_time": 1382694957,
       "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
       "remark": "",
       "groupid": 0
    }
    

    参数说明

    参数说明
    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 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
    remark 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid 用户所在的分组ID

    错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

    {"errcode":40013,"errmsg":"invalid appid"}
    

    全局返回码说明

    使用网页调试工具调试该接口

    批量获取用户基本信息

    开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。

    接口调用请求说明

    http请求方式: POST
    https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
    

    POST数据示例

    {
        "user_list": [
            {
                "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", 
                "lang": "zh-CN"
            }, 
            {
                "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg", 
                "lang": "zh-CN"
            }
        ]
    }
    

    参数说明

    参数是否必须说明
    openid 用户的标识,对当前公众号唯一
    lang 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号(示例中为一次性拉取了2个openid的用户基本信息,第一个是已关注的,第二个是未关注的):

    {
       "user_info_list": [
           {
               "subscribe": 1, 
               "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", 
               "nickname": "iWithery", 
               "sex": 1, 
               "language": "zh_CN", 
               "city": "Jieyang", 
               "province": "Guangdong", 
               "country": "China", 
               "headimgurl": "http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0", 
               "subscribe_time": 1434093047, 
               "unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4", 
               "remark": "", 
               "groupid": 0
           }, 
           {
               "subscribe": 0, 
               "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg", 
               "unionid": "oR5GjjjrbqBZbrnPwwmSxFukE41U", 
           }
       ]
    }
    

    参数说明

    参数说明
    subscribe 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息,只有openid和UnionID(在该公众号绑定到了微信开放平台账号时才有)。
    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 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
    remark 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid 用户所在的分组ID

    错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

    {"errcode":40013,"errmsg":"invalid appid"}


    关于公众号第三方平台的说明如下:

    1. 公众号第三方平台是什么?

    针对各行各业公众号的行业共性需求,第三方开发团队可以在自身熟悉的行业和领域内搭建公众号第三方平台,为公众号提供行业解决方案或功能优化方案,如电商行业的公众号商城解决方案、客户管理的功能优化方案等。公众号运营者可以通过公众号登录授权,将业务授权给第三方平台。

    2. 如何成为公众号第三方平台?

    通过前往微信开放平台按要求接入公众号登录授权,就可成为公众号第三方平台,为广大公众号提供运营服务


    展开全文
  • 微信公众平台开发微信用户开发管理是子恒老师《微信公众平台开发》视频教程的第7部。详细讲解了用php开发微信,对微信公众平台中的粉丝用户管理开发。内容包含微信公众平台用户分组,获取微信用户列表,查询用户...
  • 注意:微信接口一次只能拉取10000个用户  调用的函数本例无 直接代码:  //一次性只能拉取到10000个人 public function synchronous()//dad  {  set_time_limit(0);//设置超时  //$access_token = $...

    注意:微信接口一次只能拉取10000个用户

               调用的函数本例无

    直接代码: 
    //一次性只能拉取到10000个人
    public  function  synchronous()//dad
        {   
            set_time_limit(0);//设置超时  
            //$access_token = $obj->get_access_token();  
            $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token;
            $ress = $this->obj->http_curl($url);
    if($ress['total']>10000) {   //如果人数超过10000则重复提取
       $openidList[] = $ress['data']['openid'];
    do{
    $next_openid = $ress['next_openid'];
    $str = "&next_openid=".$next_openid;
       $url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token.$str;
       $ress = $this->obj->http_curl($url);
    $openidList[] = $ress['data']['openid'];
    }while(!empty($next_openid));

    //将分别取出的数组合并
    $i = 1;
    $k = $i-1;
    $list =  count( $openidList )
    do{
    $openidList[$i] = array_merge($openidlList[$k],$openidList[$i]);
    $i+ = 1;
    $k = $i-1;
    }while( $i < $list );

    $openidLists =$openidList[$list-1];


    } else {
    $openidLists = $ress['data']['openid'];
    }
    //var_dump($_SESSION);
            //$ress = json_decode($res,true);
            

            $total = $ress['total']; 
            header('Content-type:text/html;charset=utf8');
    foreach($openidLists as $r){
    $url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$this->access_token."&openid=".$r."&lang=zh_CN";
    $res2 =$this->obj->http_curl($url2);
                //$res2 = json_decode($resa,true);
    $result = M('member')->getByOpenid($r);
    $tagid_list = implode(',',$res2['tagid_list']);
    if(!$result) {
    $data = array(
     'subscribe' => $res2['subscribe'],
     'openid' => $res2['openid'],
     'nickname' => $res2['nickname'],
     'sex' => $res2['sex'],
     'language' => $res2['language'],
     'city' => $res2['city'],
     'province' => $res2['province'],
     'country' => $res2['country'],
     'subscribe_time' => $res2['subscribe_time'],
     'remark' => $res2['remark'],
     'headimgurl' => $res2['headimgurl'],
     'groupid' => $res2['groupid'],
     'tagid_list' => $tagid_list
    );
    $info = M('member')->add($data);
    }
    }
                         
        }

    展开全文
  • 最近在给一个服务号做后台,有各种权限的感觉真好^_^数据库设计这次的需求需要针对订阅用户的等级提供不同的权限等,因此需要获取所有订阅用户信息,创建了一个简单的user类来保存每个用户,django自带的user太...
  • 简单php获取公众号关注用户信息,包括openid,城市,国家,性别等等列表内容。
  • 微信批量获取关注者信息列表php版,当时自己开发时搜索不到类似文章,为了让大家节省时间,特此写下本篇内容。
  • 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。 公众号可通过本接口来根据OpenID获取用户基本...
  • 公众号开发需要进行一些配置, appid 和AppSecret需要填写
  • 前言: 1,一次拉取调用最多...2,获取OpenID列表后,要批量获取用户微信信息,最多支持一次拉取100条 3,处理Excel的jar包用的是jxl 4,导出过程中不要输出内容到控制台(System.out.println,我开始是输出了...
  • 微信公众号获取用户基本信息,基本信息包括(微信昵称,唯一标识openID,性别,国家、省,市,图像),并保存到数据库源码,测试正常使用。
  • 微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html 获取用户信息:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 关于网页授权的两种scope的区别说明: ...
  • 微信公众号开发用户分组
  • 本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称、头像、性别、国家、省份、城市、语言。 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息...
  • 微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号欢迎留言、转发、打赏 项目源码参考地址 点我点我--欢迎Start 极速开发微信公众号系列文章之如何一键导出微信所有用户信息到Excel 前方高能警告⚠...
  • 前言  这一篇实现snsapi_userinfo,写这篇时其实我是有疑惑的,因为我并没有调试成功,但是我反复检查程序和...而且我再三检查了微信开发文档里,snsapi_userinfo的方式是要比snsapi_base简单的,也很好理解。  ...
  • ``` string code = Request.QueryString["code"]; Senparc.Weixin.MP.AdvancedAPIs.OAuth.OAuthAccessTokenResult tokenResult = OAuthApi.GetAccessToken(ConfigurationManager.AppSettings["appID"], ...
1 2 3 4 5 ... 20
收藏数 10,815
精华内容 4,326
关键字:

微信开发批量获取用户信息