模拟微信公众平台进行登录、回复上行消息的方式,来给我自己发送一些推送。
最近微信后台做了调整,登录太频繁的话,会被限制登录微信公众平台一个小时,接口连接时则收到 access deny
的报错信息。
到虚拟机的 windows 下,使用 Fiddler 抓了下 http 请求,检查以下几个方面是否有变化:
- get、post 的方式
- 提交的参数
- 设置的 referer
- 保存的 cookie
过了一遍我所使用的接口(来自网络),原来没有重复使用缓存的 cookie, 每次都是重新登录。 源作者登录的频率较少,而我每3秒登录一次,就滥用了; 另外接口里登录和发送消息设置了一样的 referer, 暂时发现这两个问题。
修改:
- 先修正接口里登录的 referer
- 减少登录的频率,改为5分钟登录一次,且校验登录是否成功(接口未做检查),再发送消息。
依然继续这种粗糙的使用方式。
若是并发多,还是得重复使用缓存 cookie,方式有两种:
- 每次发送前检查 cookie 有效性,模拟微信公众平台上任意的一次请求,检查返回结果,若请求失败或收到错误信息,则重新登录、获取并缓存 cookie
- 不检查 cookie 有效性,定时重新请求 cookie
另外,若一次发送的消息内容过长会报错 invalid args
, 对比正常的下行消息,估算下消息长度限制在 512 字节比较合适。
大概就这些,出于兴趣做的了解,非商业用途。
– EOF –