用php去写如QQ,微信这样微信过去的聊天记录社交软件的服务端可行么?

相比于最常用的短信和邮件的通知方式,微信有着无可比拟的优势:快速、免费,特别适合用在报警通知类应用上。
但是微信并没有提供现成的api接口来给好友发送信息,公众平台也只能被动回复。那么如何才能主动发信息呢?答案就在微信网页版。
仔细观察微信网页版和服务器请求的记录,发现完全就是以oauth授权方式运行,完全不用考虑cookie。据此,分析请求记录,就能模拟网页版登录微信,从而实现主动向用户发送消息的功能。
以下是用到的请求:
1. 获取uuid,从返回的数据中,找到uuid
https://login.weixin.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN
2. 获取二维码图片,然后使用微信扫描
https://login.weixin.qq.com/qrcode/$this-&uuid?t=webwx
3. 获取令牌,轮询,直到从返回的数据中找到window.redirect_uri=xxxx的代码,xxx就是令牌url
https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?uuid=$this-&uuid&tip=1
4. 访问令牌url,获取sid。从返回的头信息中,分析出Uin,sid和uuid,保存起来
5. 初始化微信,从返回的数据中读取UserName
$data = array(
&BaseRequest&=&array(
&DeviceID& =& 'e779',
&Sid& =& $this-&sid,
&Skey& =& &&,
&Uin& =& $this-&Uin,
$this-&post_contents('https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit', $this-&encode($data));
6. 获取Skey
$this-&post_contents('https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=' . urlencode($this-&sid), '{&BaseRequest&:{&Uin&:'.$this-&Uin.',&Sid&:&'.$this-&sid.'&},&SyncKey&:{&Count&:0,&List&:[]}}');
7. 发送消息,POST方式,
$data = array(
&BaseRequest& =& array(
&Uin&=& $this-&Uin,
&Sid&=& $this-&sid,
&Skey&=& $this-&Skey,
&DeviceID&=& $this-&DeviceID,
&Msg& =& array(
&FromUserName& =& $this-&FromUserName,
&ToUserName& =& $name,
&Type& =& 1,
&Content& =& $content,
&ClientMsgId& =& $this-&ClientMsgId,
&LocalID& =& $this-&ClientMsgId,
$str = $this-&encode($data);
son_decode($this-&post_contents('https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?sid=' . urlencode($this-&sid) . '&r=' .$this-&ClientMsgId, $str), true);
发送消息的经典过程为:
初始化对象,设置Uin,sid,uuid
但是微信网页版长时间不登录会失效,所以还需要写个任务去ping
$data = '{&BaseRequest&:{&Uin&:'.$this-&Uin.',&Sid&:&'.$this-&sid.'&},&SyncKey&:{&Count&:0,&List&:[]}}';
$ret = json_decode($this-&post_contents('https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=' . urlencode($this-&sid), $data, 30), true);
微信的数据都是以json格式传输的,但是他这个json比较特殊,还需要用特别的函数来实现
protected function encode($data){
if(!is_array($data)){
return $this-&encode_str($data);
$ds = array();
foreach($data as $k =& $v){
$ds [] = &\&$k\&:& . $this-&encode($v);
return '{' . join(',', $ds) . '}';
protected function encode_str($str){
if(preg_match('|^\d+$|', $str)){
return '&' . str_replace('&', '\&', iconv('GBK', 'UTF-8', $str)) . '&';微信,是一个生活方式 超过十亿人使用的手机应用 支持发送语音短信、视频、图片和文字 可以群聊,仅耗少量流量,适合大部分智能手机
微信 2.3.6 for Mac 发布
微信 for iOS / Android
微信 2.6.2 for Windows 发布
微信网页版 扫一扫二维码 就能在浏览器上使用微信
微信 Mac 版 极致简洁,迅捷沟通
微信 Windows 版 让沟通更方便像微信这样的社交聊天工具都有哪些??_百度知道
像微信这样的社交聊天工具都有哪些??
我有更好的答案求助知道网友
QQ,MSN,陌陌,飞信等等。陌陌是一款基于地理位置的移动社交工具。使用者可以通过陌陌认识附近的人,免费发送文字消息、语音、照片以及精准的地理位置和身边的人更好的交流;可以使用陌陌创建和加入附近的兴趣小组、留言及附近活动和陌陌吧。社交模式:根据GPS搜寻和定位你身边的陌生人和群组,高效快捷的建立联系,节省沟通的距离成本。免费传递:你可以方便通过陌陌免费发送短信、语音、照片以及精准的地理位置,与TA进行各种互动。体贴递送:即时了解信息送达的状态,“送达、已读”等提示能让你及时掌握信息是否被对方看到。个人资料:你可以在资料页存放八张照片,以及签名、职业、爱好等等,增进别人对你的了解。
采纳率:100%
qq,来玩,陌陌,MSN,飞信都是不错的,现在聊天app有很多的
就是手机软件
1.QQ聊天工具2.MSN聊天工具 3.来往4.SKYPE 5.E话通 6.即视高 7.UC聊天工具 8.雅虎通聊天工具 9.中国移动飞信10.网易泡泡POPO,陌陌,yy,米聊,易信,太多了
通常都用的有哪几种?
qq。陌陌,,yy,飞信,其实通用的没几个
本回答被网友采纳
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
聊天工具的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。社交软件行业发展前景分析_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
社交软件行业发展前景分析
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩8页未读,
定制HR最喜欢的简历
你可能喜欢后台-【PHP实现微信类似的消息推送功能】
作者:用户
浏览:1374 次
【PHP实现微信类似的消息推送功能】最近在开发一个项目,想做一个类似微信后台往前端用户推送消息的功能1:首先问一下有没有好的这种PHP实现这种聊天的框架可以使用?2:如果1不满足的话,有谁做过类似的功
【实现微信类似的消息推送功能】
最近在一个项目,想做一个类似微信后台往前端用户推送消息的功能
1:首先问一下有没有好的这种PHP实现这种聊天的框架可以使用?
2:如果1不满足的话,有谁做过类似的功能,能够贡献一下参考代码吗?
3:是否还有更好的实现方式?
先谢谢大家了,这个项目比较赶,还请各位技术大牛帮忙回答一下,再次感谢
PHP做到实时的消息推送会比较困难,对服务器端的压力比较大,可以考虑使用ajax间隔轮询的方法来进行。
如果想做到特别实时的,需要使用comet方法,可以考虑使用nodejs之类的服务器,对高并发的长连接支持很好
或者使用websocket+nodejs/erlang的方式,来实现消息推送,网易有一个叫pomelo的 nodejs框架支持同浏览器的websocket通信,它的浏览器端封装了js事件,后端服务器也是用js开发,对javascript熟练的开发人员很容易上手
解决方案二:
微信有一种消息推送是48小时限制的,还有一种是模板消息推送
【云栖快讯】青年们,一起向代码致敬,来寻找第83行吧,云栖社区邀请大神彭蕾、多隆、毕玄、福贝、点评Review你的代码,参与互动者将选取50位精彩回复赠送“向代码致敬”定制T恤1件,最终成为“多隆奖”的小伙伴还将获得由阿里巴巴提供的“多隆奖”荣誉证书和奖杯。&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
云服务器9.9元/月,大学必备}

我要回帖

更多关于 微信去年的聊天记录 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信