wechat private api

模拟微信公众平台进行登录、回复上行消息的方式,来给我自己发送一些推送。

最近微信后台做了调整,登录太频繁的话,会被限制登录微信公众平台一个小时,接口连接时则收到 access deny 的报错信息。

到虚拟机的 windows 下,使用 Fiddler 抓了下 http 请求,检查以下几个方面是否有变化:

  1. get、post 的方式
  2. 提交的参数
  3. 设置的 referer
  4. 保存的 cookie

过了一遍我所使用的接口(来自网络),原来没有重复使用缓存的 cookie, 每次都是重新登录。 源作者登录的频率较少,而我每3秒登录一次,就滥用了; 另外接口里登录和发送消息设置了一样的 referer, 暂时发现这两个问题。

修改:

  1. 先修正接口里登录的 referer
  2. 减少登录的频率,改为5分钟登录一次,且校验登录是否成功(接口未做检查),再发送消息。

依然继续这种粗糙的使用方式。

若是并发多,还是得重复使用缓存 cookie,方式有两种:

  1. 每次发送前检查 cookie 有效性,模拟微信公众平台上任意的一次请求,检查返回结果,若请求失败或收到错误信息,则重新登录、获取并缓存 cookie
  2. 不检查 cookie 有效性,定时重新请求 cookie

另外,若一次发送的消息内容过长会报错 invalid args, 对比正常的下行消息,估算下消息长度限制在 512 字节比较合适。

大概就这些,出于兴趣做的了解,非商业用途。



– EOF –

Categories: in_notes
Tags: api,wechat