微信加好友web api 限制请求次数验证,只能在有效期内6-8次。过了有效期次数满了可以继

18339人阅读
微信(12)
因为access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token改造一下。
另外需要说明的是access_token是变化的,有自己的周期,官方解释为:&有效期为7200秒&,这就要
求我们把获得的access_token存入一个物理文件或者Application中,请求到过期后修改这些内容,需要用的时候读出来.
有些人可能想到了,如果过期我就在获得一个就好了,不用物理文件和Application也可以达到同样的效果,但是需要注意了微信平台对每天获得
access_token的次数也作了限制,一个用户出发多次,如果用户多,那肯定就超出了。所以我们还是按照以上的思路实现这些功能:
在此之前我们已经了解了获得access_token的方法(连接),现在只需要保证它的随时更新就好了.
首先建立一个Access_token类
&&&&&&public&class&Access_token&&{&&&&&&public&Access_token()&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&string&_access_&&&&&&string&_expires_&&&&&&&&&&&&&&&&&&&&&&&&&&public&string&access_token&&&&&&{&&&&&&&&&&get&{&return&_access_&}&&&&&&&&&&set&{&_access_token&=&&}&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&public&string&expires_in&&&&&&{&&&&&&&&&&get&{&return&_expires_&}&&&&&&&&&&set&{&_expires_in&=&&}&&&&&&}&&}&&
用下面的XML文件来存放access_token,建立一个XMLFile.xml,把Access_YouXRQ标签的内容写成一个已经过去的时间,这样我们好在一开始调用的时候,发现已经过期,然后获取新的access_token。
&version=&1.0&&encoding=&utf-8&&&&&&&初始值可以随便写&&&&&16:06:38&&&&
改造一下之前获得Access_token的方法,让他给Access_token实例赋值
public&static&Access_token&GetAccess_token()&&&&&&{&&&&&&&&&&string&appid&=&你的appid&;&&&&&&&&&&string&secret&=&你的&&&&&&&&&&string&strUrl&=&&https://api./cgi-bin/token?grant_type=client_credential&appid=&&+&appid&+&&&secret=&&+&&&&&&&&&&&Access_token&mode&=&new&Access_token();&&&&&&&&&&&&HttpWebRequest&req&=&(HttpWebRequest)HttpWebRequest.Create(strUrl);&&&&&&&&&&&&req.Method&=&&GET&;&&&&&&&&&&using&(WebResponse&wr&=&req.GetResponse())&&&&&&&&&&{&&&&&&&&&&&&&&HttpWebResponse&myResponse&=&(HttpWebResponse)req.GetResponse();&&&&&&&&&&&&&&&&StreamReader&reader&=&new&StreamReader(myResponse.GetResponseStream(),&Encoding.UTF8);&&&&&&&&&&&&&&&&string&content&=&reader.ReadToEnd();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Access_token&token&=&new&Access_token();&&&&&&&&&&&&&&token&=&JsonHelper.ParseFromJson&Access_token&(content);&&&&&&&&&&&&&&mode.access_token&=&token.access_&&&&&&&&&&&&&&mode.expires_in&=&token.expires_&&&&&&&&&&}&&&&&&&&&&return&&&&&&&}&&
以上的方法用到了Json对象的处理,所以我把JsonHelper的代码一贴出来供大家参考,一下就是JsonHelper.cs的代码:
using&S&&using&System.IO;&&using&System.T&&using&System.Runtime.Serialization.J&&&&&&&&&&public&class&JsonHelper&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&static&string&GetJson&T&(T&obj)&&&&&&{&&&&&&&&&&DataContractJsonSerializer&json&=&new&DataContractJsonSerializer(obj.GetType());&&&&&&&&&&using&(MemoryStream&stream&=&new&MemoryStream())&&&&&&&&&&{&&&&&&&&&&&&&&json.WriteObject(stream,&obj);&&&&&&&&&&&&&&string&szJson&=&Encoding.UTF8.GetString(stream.ToArray());&return&szJ&&&&&&&&&&}&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&static&T&ParseFromJson&T&(string&szJson)&&&&&&{&&&&&&&&&&T&obj&=&Activator.CreateInstance&T&();&&&&&&&&&&using&(MemoryStream&ms&=&new&MemoryStream(Encoding.UTF8.GetBytes(szJson)))&&&&&&&&&&{&&&&&&&&&&&&&&DataContractJsonSerializer&serializer&=&new&DataContractJsonSerializer(obj.GetType());&&&&&&&&&&&&&&return&(T)serializer.ReadObject(ms);&&&&&&&&&&}&&&&&&}&&}&&
我们还需要些一个判断access_token是否过期如果过期更新XML文件的方法。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&static&string&IsExistAccess_Token()&&&&&&{&&&&&&&&&&&&string&Token&=&string.E&&&&&&&&&&DateTime&YouXRQ;&&&&&&&&&&&&&&&&&&&&string&filepath&=&Server.MapPath(&XMLFile.xml&);&&&&&&&&&&&&StreamReader&str&=&new&StreamReader(filepath,&System.Text.Encoding.UTF8);&&&&&&&&&&XmlDocument&xml&=&new&XmlDocument();&&&&&&&&&&xml.Load(str);&&&&&&&&&&str.Close();&&&&&&&&&&str.Dispose();&&&&&&&&&&Token&=&xml.SelectSingleNode(&xml&).SelectSingleNode(&Access_Token&).InnerT&&&&&&&&&&YouXRQ&=&Convert.ToDateTime(xml.SelectSingleNode(&xml&).SelectSingleNode(&Access_YouXRQ&).InnerText);&&&&&&&&&&&&if&(DateTime.Now&&&YouXRQ)&&&&&&&&&&{&&&&&&&&&&&&&&DateTime&_youxrq&=&DateTime.N&&&&&&&&&&&&&&Access_token&mode&=&GetAccess_token();&&&&&&&&&&&&&&xml.SelectSingleNode(&xml&).SelectSingleNode(&Access_Token&).InnerText&=&mode.access_&&&&&&&&&&&&&&_youxrq&=&_youxrq.AddSeconds(int.Parse(mode.expires_in));&&&&&&&&&&&&&&xml.SelectSingleNode(&xml&).SelectSingleNode(&Access_YouXRQ&).InnerText&=&_youxrq.ToString();&&&&&&&&&&&&&&xml.Save(filepath);&&&&&&&&&&&&&&Token&=&mode.access_&&&&&&&&&&}&&&&&&&&&&return&T&&&&&&}&&
好了,完成了上面的工作,我只需要在使用到access_token的时如下调用就OK了,“客户再也不用担心token的过期”
string _access_token = IsExistAccess_Token();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:147491次
积分:1655
积分:1655
排名:第18407名
原创:12篇
转载:62篇
评论:39条
(1)(2)(2)(9)(4)(3)(2)(17)(2)(3)(11)(2)(16)微信取消群二维码?官方:有效期一直是7天
扫描到手机,看更多国搜资讯
您可以用手机或平板电脑的二维码应用拍下左侧二维码,您可以在手机国搜客户端继续浏览本文,并可以分享给你的好友。
核心提示:“微信将加强管制,微信群二维码将于3月13日取消”的消息被转发。微信团队郑重声明:网上所谓微信将取消群二维码一说纯属子虚乌有。 ”
昨天,微信圈及微博上,大量“微信将加强管制,微信群二维码将于3月13日取消”的消息被转发。昨天,微信官方接受本报采访时称:近日微信方面已接大量用户举报,称在自己的朋友圈或者群聊中看到这种谣言流传,“微信团队郑重声明:网上所谓微信将取消群二维码一说纯属子虚乌有。 ”
近日,网上疯传“听说,为进一步对微信群管制,所有群的二维码将于3月14日失效,群主,现在可以看看群二维码。我刚才看了确实是14日失效。你点右上角小人,点开二维码确时写日失效! ”
昨天,微信官方负责人听到这个说法,对记者说,“这完全是误解,每次生成二维码的失效期都是7天,明天生成的失效期就是15日了,不是公众号失效。 ”有关负责人解释称,“其实只是你分享给别人让人家加群的那个二维码,在被分享人那里7天再点击进去就失效了。不是说二维码不对了,七天之后二维码还是同样的那个。只是为了避免骚扰和实效性,7天之后别人再点你7天前分享出来的那个二维码就失效了。 ”
微信方面称,“一直以来,微信为保证用户体验以及防止乱加好友情况的出现,用户在拉取群二维码时都会自动设定一个识别有效期,每个有效期的时间是7天。如:一个用户在昨天获取一个群的二维码,该群的二维码有效期将到3月13日,但如果今天重新获取一个新的群二维码的话,那么有效期的时间将会到3月14日,以此类推。微信团队对于诸如此类网上不实信息将进行坚决打击,请广大用户勿信谣言。同时,微信团队对产品还将持续不断进行优化,给用户提供更好服务。 ”
责任编辑:赵霜
免责声明:
凡发布在本网上的内容,除标注为“中国搜索”或“国搜”的稿件外,其他均转自第三方网站,是为传递更多信息和学习之目的,不意味着本网认可其观点或证实其内容的真实性、准确性。如有意见建议,请点击页面下方的“对国搜说”,欢迎及时反馈。
版权说明:
凡来源标注为“中国搜索”的本网稿件,转载时请注明出处。
东北热搜词
黄金周哪些景点最受欢迎,会不会被挤成饼干?推荐到广播
632762 人聚集在这个小组
(属于我的一片天)
(我有一个旺财)
(深海小豚鼠)
第三方登录:

我要回帖

更多关于 熊猫tv请求次数过多 的文章

 

随机推荐