文档章节

关于微信公众平台模拟接收发送消息(无源码)

天体图
 天体图
发布于 2013/07/25 15:39
字数 911
阅读 2314
收藏 14

由于主要的部分都在模拟登录的时候讲掉了,我就快速而又简单的将接收消息和发送文字消息。

我们登录之后,进入实时消息页面,按一下F12打开“开发人员工具”,点击网络标签,点击开始捕获,可以看到

它一直在获取有没有新消息。双击某一条记录,进去看详细信息,这里除了请求标头还有cookie要注意一下之外,多了一个新东西,就是请求正文token=1511255160&ajax=1里的token,这是在登录成功消息里返回给我们的,在上一篇文章的最后一点提到过。那个地址里的lastmsgid=100000027我们可以一开始可以用1啊0啊什么的,下面再说。返回的消息是{"ret":"0", "totalMsgCount":"", "newTotalMsgCount":"0"},很明显,懂点英文的就知道newTotalMsgCount就是新消息数,我们判断它不等于0的时候,就去获取一下实时消息那个页面,为什么呢?

因为消息就藏在那个页面里面,并没有特别的“消息接口”。

<script type="json" id="json-msgList">
      [                      {"id":"100000043","type":"1","fileId":"0","hasReply":"0","fakeId":"416353015","nickName":"天体图","remarkName":"","dateTime":"1374735114","icon":"","content":"哈哈哈","playLength":"0","length":"0","source":"","starred":"0","status":"4","subtype":"0","showType":"0","desc":"","title":"","appName":"","contentUrl":"","bcardNickName":"","bcardUserName":"","bcardFakeId":"0"}        
                        ,        {"id":"100000042","type":"1","fileId":"0","hasReply":"0","fakeId":"416353015","nickName":"天体图","remarkName":"","dateTime":"1374734760","icon":"","content":"嘻嘻嘻","playLength":"0","length":"0","source":"","starred":"0","status":"4","subtype":"0","showType":"0","desc":"","title":"","appName":"","contentUrl":"","bcardNickName":"","bcardUserName":"","bcardFakeId":"0"}        
                    ]
  </script>

在实时消息页面查看源代码就能看到上面这段代码(可以查看源代码后搜索json-msgList),根据我的分析,type是消息类型(自己试一下,拿微信朝公共平台上发,然后对比),fakeId相当于一个用户的唯一标识符,nickName是昵称,remarkName是备注,dateTime是消息发送时间(这是“1970 年 1 月 1 日至今的毫秒数”,自己转换成真实的时间吧),content是文字内容,ContentUrl应该是语音或视频文字的地址。有了这几个应该差不多了,其它的自己分析吧。友情提供一个获取用户详细信息的接口https://mp.weixin.qq.com/cgi-bin/getcontactinfo?t=ajax-getcontactinfo&lang=zh_CN&fakeid=416353015,聪明的同学可以去发现更多的有用接口。

这里的ID是消息的ID,可以选一个最大的记下来,在下次获取新消息数的时候传过去,就是刚刚的lastmsgid。

这里做一下小结:

收消息过程中,不管是获取消息数,还是获取消息列表,还是获取具体内容(包括下载语音和视频文件),一定要注意cookie和请求头里的Referer以及请求正文里的token

#####################这根分割线是谁的?###############################

接下来是发消息,发消息有两处地方,一个是实时消息里有快捷回复,一个是用户列表里点击人姓名就跳到类似聊天模式的地方。这个接口大家自己去找一下,太简单了,不想说了(发送代码在我的代码里只占了两行)。我说的都是发送文字消息啊,发送图文消息的接口也是很简单的,不过蛋疼的就是“素材”这个概念,不能让我想发什么就发什么,只能发“素材”。我还不太会用程序上传“素材”,就不献丑了。先写到这,也算还了一个愿。最后说一下容易失误的地方是Referer和token,还有Cookie






© 著作权归作者所有

天体图

天体图

粉丝 16
博文 5
码字总数 4734
作品 0
南京
私信 提问
关于java对接微信模板消息推送

最近项目中有个功能,用户在下单支付成功后需要对微信提供服务通知。在网上找了资料结合自己实际应用,故写一篇博客记录一下操作。 微信官方API文档:https://developers.weixin.qq.com/mini...

__HuWei
2018/07/27
6.7K
0
模拟Wechat API--wecheat

WeCheat Wechat Api faker, 模拟Wechat API,帮助你开发与调试微信公众平台应用 Features 基于Sinatra Framework 使用Bootstrap UI 支持多个应用 仿真数据(App, User, Group, QRCode, Menu, ...

xixilive
2014/06/03
5.2K
0
微信公众帐号开发教程第4篇-消息及消息处理工具的封装

工欲善其事必先利其器!本篇内容主要讲解如何将微信公众平台定义的消息及消息相关的操作封装成工具类,方面后期的使用。这里需要明确的是消息其实是由用户发给你的公众帐号的,消息先被微信平...

bliver
2013/11/29
620
2
微信公众帐号推送消息无任何提示,是怎么回事?

最近围绕微信公众帐号开发了很多辅助程序,突然发现,公众帐号推送消息时,手机端没有任何提示,我这里不是群发,而是用程序模拟登陆微信的公众平台后台,给单个用户发送消息:具体是这个页面...

hell0cat
2013/06/01
7.9K
1
微信公众平台开发入门教程

关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。 我们将使用微信公众账...

方倍工作室
2013/06/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一次看懂 Https 证书认证

TLS > 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图,TLS...

极客收藏夹
24分钟前
3
0
https证书买哪家好?有哪些供应商

在选购https证书前除了要了解类型外,还需要了解https证书供应商,毕竟不同的供应商,提供的产品质量与服务也是有差异的。今天小编就为大家讲讲https证书供应商方面的内容,希望各位会喜欢。...

安信证书
26分钟前
4
0
Zuul 配置

概述:zuul底层是基于servlet,是由一系列的filter链构成。 1、路由配置 a、单例serverId映射 zuul: routes: client-a: path: /client/** serviceId: client-a 意思是...

java框架开发者
43分钟前
3
0
zk中FinalRequestProcessor解析

是处理器最后一个环节 FinalRequestProcessor implements RequestProcessor 处理器链最后一个环节处理事务和非事务请求最后一个环节 构造器 public FinalRequestProcessor(ZooKeeperServer z...

writeademo
43分钟前
3
0
Axios 详解

首先祝广大程序猿们节日快乐! 一、axios简介 基于promise,用于浏览器和node.js的http客户端 二、特点 支持浏览器和 node.js 支持 promise 能拦截请求和响应 能转换请求和响应数据 能取消请求...

张兴华ZHero
44分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部