【转】【彻底开源】微信客户端.NET版

【转】【彻底开源】微信客户端.NET版html

目录git

说明github

前两天比较闲,研究了一下web版微信。由于以前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什么意义,但又不想半途而废,因此最后作出了一个这样子的demo。功能比较少,跟官方客户端功能差很少(其实要差一些:))。大概原理就是使用WebRequest请求数据,demo中代码写得比较乱,可是关键地方都有注释。先看一下截图:web

  

 

代码已经上传到github,有须要的能够看一下:chrome

源码下载json

 

功能浏览器

能作:服务器

  • 二维码登陆;
  • 加载最近联系人;
  • 加载全部好友;
  • 聊天;
  • 查看好友信息。

不能作:微信

  • 不能收发复杂消息(实际上除了字符串以外都不能,表情我没有解析,你若是发送[拥抱],别人仍是能收到正确的表情);
  • 不能看朋友圈;
  • 懒得写了,其余功能都不能。

 

原理步骤cookie

打开 wx.qq.com ,按F12,而后手机扫描二维码登陆,一切过程都能看到:

过程大概以下:

  1. 访问url获取回话ID;
  2. 根据会话ID获取二维码;
  3. 显示二维码;
  4. 循环判断二维码是否已被扫描(若是已经扫描,是否已点击“登陆”);
  5. 若是用户点击了手机上的“登陆”,服务器会返回一个特定的url,访问该url,服务器会返回登陆相关的cookie(保存cookie到本地);
  6. 初始化微信(初始化的时候,会返回一部分最近联系人);
  7. 加载所有好友;
  8. 根据须要加载好友头像等等;
  9. 循环判断服务器上是否有数据更新(好比收到了别人的消息);
  10. 若是有更新,则同步数据;
  11. 返回第9步。

每步须要的具体url我就不详说了,网上有。我代码中也有(只是有点烂)。

 

一些参考

源码中用到了一些开源代码和一些工具:

  • Webkit.NET(用于聊天框、自带的Webbrowser兼容不行);
  • json.net(解析服务器返回的json数据)
  • chrome(浏览器 按F12 你们都懂的)

注:登陆后一段时间,数据同步常常出现1205错误,致使接收不到别人发过来的消息,该错误暂时还未解决,下次找到缘由了再更新。

 

全部源码均遵循MIT协议,开源有益,多谢点赞!

相关文章
相关标签/搜索