.net 实现微信公众平台的用户信息获取

2019-03-02 00:45|来源: 网路

public string getSubUserFkId()
        {
            log.Info("开始去微信服务器获取关注用户信息!");//大家可以把这一句注掉
            try
            {
                CookieContainer cookie = null;
                string token = null;

                //此处的作用是判断Cookie是否过期如果过期就重新获取,获取cookie的方法本人在.net 实现微信公众平台的主动推送信息中有源码。大家可以去看一下。这里就不再粘源代码了。

                if (null == LoginPassWord.cookie || LoginPassWord.CreateDate.AddMinutes(Convert.ToInt32(WeiXinBase.readxml.ReadDataBaseConStr("LoingMinutes"))) < DateTime.Now)
                {
                    new LoginBase().ExecLogin();
                }
                cookie = LoginPassWord.cookie;//取得cookie
                token = LoginPassWord.token;//取得token

/*获取用户信息的url,这里有几个参数给大家讲一下,1.token此参数为上面的token 2.pagesize此参数为每一页显示的记录条数

3.pageid为当前的页数,4.groupid为微信公众平台的用户分组的组id,当然这也是我的猜想不一定正确*/
                string Url = "https://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&token="+token+"&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0";
                HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(Url);
                webRequest2.CookieContainer = cookie;
                webRequest2.ContentType = "text/html; charset=UTF-8";
                webRequest2.Method = "GET";
                webRequest2.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
                webRequest2.ContentType = "application/x-www-form-urlencoded";
                HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();
                StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.Default);
                string text2 = sr2.ReadToEnd();
                MatchCollection mc;

//由于此方法获取过来的信息是一个html网页所以此处使用了正则表达式,注意:(此正则表达式只是获取了fakeid的信息如果想获得一些其他的信息修改此处的正则表达式就可以了。)
                Regex r = new Regex("\"fakeId\"\\s\\:\\s\"\\d+\""); //定义一个Regex对象实例
                mc = r.Matches(text2);
                //string fackId = mc[0].Value.Split(new char[] { ':'})[1];
                fackId = fackId.Replace("\"", "").Trim();
                return fackId;
            }
            catch(Exception ex)
            {
                log.Error(ex);
                throw ex;
            }
        }


转自:http://www.cnblogs.com/ytmom/p/3139217

相关问答

更多
  • 没有办法的,微信把用户信息控制的很严,只会给开发者一个openId,这是用户的微信号加密后的一串唯一标识
  • 先用抓包软件抓下登录时的数据包,然后 分析他用的是什么协议,然后 根据他的协议来写自己的程序,不过这个是一个比较大的工作量大事。不比抢票软件简单
  • 能使用的!微信 在安卓手机里可以使用,安装是用java 开发的,所以 可以用java开发
  • 不对,您误会了,我说的是微信公众平台的开发啊。可以选用php和.net开发,但是网上只有php开发的教程
  • 微信公众平台开发注意事项: 一、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。 二、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 三、在开发过程中,可以使用接口调试工具来在线调试某些接口。 四、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 五、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台 ...
  • 小猪cms还凑合,,有源码的 ,每周更新两三个模板的 ,你可以看下 ,,
  • 没有哪个好哪个不好一说,只有适不适合,语言只是工具,看你自己会什么,或者习惯使用什么语言,不过网上关于开发微信PHP的DEMO比.NET的多一些,遇到不会的比较好查资料。
  • 微网站开发模式教程:   第一步:申请消息接口   在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名。   第二步:验证URL有效性   开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:   开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,请原样返回 echostr参数内容,则接入生效,成为开发 ...
  • 刚刚看错了 这个在原理上是可以实现的 但是电话号码除外 这个需要关注的人自己提供给公众号才行
  • 登录你的微信平台,点击“公众号设置”。 点击“功能设置”,然后点击“设置”。 设置JS接口安全域名。这里填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。(多说一句,相比以前的分享没有任何域名限制,这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信平台,一旦发现违规,让分享链接失效,删除掉诱导行为增加的粉丝,是瞬间就可以完成的。因此,微信平台的开发者,一定要合理来 ...