« Effective C++ 3rd 的一点评论 | 返回首页 | 关于群服务的实现 »

QQ 用户关系的迁移

最近网上最热的话题算是 QQ 和 360 的火并了。我不是 360 的用户,也没有装 QQ 的 client 。偶尔有朋友非要用 QQ 联系我时,我会用 web qq 登陆上去,收个消息,回复一下,然后就下来。我有个 6 位 qq 号码(曾经还有个 5 位的),04 年开始就不怎么用了。

在腾讯,我有几个私交很不错的朋友,对这家公司没什么恶感。唯一的一次是觉得他们不尊重 GPL 协议。所以这次这件事情也没啥心情观看。直到,QQ 居然封掉了 web qq ,用这种自残的方式参战,完全不顾用户的感觉。

我一直认为,做一家大的互联网企业是应该有更高的追求的。所以我喜爱 google ,他们以让信息被更高效的获取为己任。而作为中国 IM 最大提供商的 qq 呢?我想,更方便的让中国互联网用户相互联络应该是他们最高的追求吧。但是,qq 没有这个意识,这是让我最为失望的地方。

腾讯绝对有技术实力,按 XMPP 协议实现个互联互通的 s2s 服务。这能极大的促进互联网用户的在线交流。但是他们没有。这是我不喜欢这家公司的主要地方。而不是因为 qq 是我所在网易公司所开发的不争气的 popo 的竞争对手的缘故。

我一直不懈余力的相我的朋友推广 google 的 IM 软件(以及 google 其它服务):googletalk 。不仅因为它的简洁,更在于它的开放。完整的支持了 XMPP 协议。我写过 blog 谈过为什么我喜欢 google talk 。我觉得这次也算一个契机,可以帮助更多的朋友从 qq 的封闭世界里解脱出来。

大多数人都觉得,摆脱不了 qq 的主要原因是 QQ 上的社交圈。看似无解,但其实也可以部分的做到 QQ 用户关系的迁移。

我们需要做两件事情:

第一,导出 QQ 的好友名单。

完成这一步的方法有三:

  1. 兼容 qq 协议,从服务器获取好友信息。
  2. 使用 web qq 或 qzone 的信息,这相对简单。
  3. 扫描用户本地聊天记录,提取好友信息。

关于其一,qq 是私有协议,逆向工程不符合 QQ 的 EULA 最终用户许可协议。不过世界上已经有许多开源的实现。我不认为 clone QQ 协议是非法的。用户有权用自己的方式合法的使用腾讯授予的服务。

关于其二,web qq 被腾讯自己砍掉了。qzone 倒是个不错的途径。

关于其三,扫描本地文件,比较流氓,不过得到用户授权,比如弹出对话框让用户选择目录应该没问题。只是兼容各种不同的 qq 版本比较繁琐。

如果用兼容 qq 协议的方式来做,出于对用户的方便,可以做成网络服务,让用户提交 qq 用户名密码。但这显得不太安全。没有什么可靠的手段让用户放心。所以,退而求其次,可以开发一个开源的 qq 登陆器。因为开源,可以受到监督,并没有盗取任何好友名单之外的信息。

并且在提交好友信息时,应该以明文方式呈现提交内容,让用户确定提交。

我认为这种形式是可以得到用户的信任的。

第二步要做的是提供一个服务收集用户之间的拓扑关系。用户提交自己另外在使用的 IM 软件的名字和帐号,以及自己的 QQ 好友列表。如果有足够多的用户(只需要是一个群体的)提交,这个服务就可以以各种方式提示你,你的 qq 好友某某正在使用 google talk / msn 等等。你可以方便的加他了。

以 google talk 为例,我们可以制作一个机器人。(因为 gtalk 兼容 XMPP 协议,机器人更方便制作,以跨服务器的方式来通讯,而不需要以 gtalk client 的形式)

在用户提交自己的 qq 好友关系时,我们的机器人就会自动加他为 gtalk 好友。一旦侦测到他有 qq 好友迁移到 gtalk,机器人就可以自动发通知了。


总的看来,这套东西不算难做。这几天比较闲,打算实现出来看看。

btw, 如果有 360 的同学看到这里。如果 360 有推出自己的 IM 软件的打算。我强烈建议使用标准的 XMPP 协议,架设 jabber 服务器就行了。别再搞私有协议了。

Comments

按照你这说法,是不是你们所有收费的游戏大家都不要去玩了呢

如果想 “从技术上” 颠覆QQ,可能本身就走错了方向。最大的阻力并不在于技术。大家为什么用QQ,这是一个社会性问题,每个人的想法都是:因为别人都在用,所以我也用。QQ的不可替代性有很多,我只说一点就足够让号称QQKiller们侧目:QQ覆盖了几乎所有能上网的手机,包括几百块的山寨机。

看不懂技术的部分,但是希望云风能把qq好友迁移到GTalk的小软件分享一下

小心腾讯啦,^-^

个人认为,只要使用QQ邮箱里面的同步QQ好友,然后导出为.CVS文件即可

个人认为,只要使用QQ邮箱里面的同步QQ好友,然后到处为.CVS文件即可

迁移的技术应该不难,难在如何让用户愿意迁移。
如果用户愿意迁移,根本不需要迁移工具的。因为用户经常联系的人并不多,手动即可。实在懒的话,群发个消息,或直接把QQ签名改为“我正在使用XXX,联系请用XXX。我的账号xxx”。
《社交网络》里有一句话,意思是说用户的关系就像多米诺骨牌,一个走了就会带走好几个,然后多米诺就全倒了。
由此看来,对付QQ可以先建立一些非常吸引人的应用,把一些喜欢尝鲜的人吸引过来,并粘住他们,然后他们会不断地带来新的用户,然后QQ就“溃于蚁穴”了。
关键是这个新的应用要比QQ更好,并且一直更好。

tx不是好人,360也不是好人,欺负人了还一副被欺负的样儿。工信部说了:主席要用qq,也要用360,你们看着办吧!所以他们的梁子得深埋一段时间。懂得这层的人毕竟是少数,中国大多数人是喝奶的,不是吃草的,他们不关心草是怎么成奶的,所以不会关心牛的想法,都喝tx的奶那么多年了,觉得挺好,不会管163,google等等这些牛的想法。不过大家都是牛。

强贴留名,呵呵

火牛:你多大了?还随地大小便?哦,抱歉,忘了你不是人,是牛,不应该对牛弹琴。

那个三无之徒,连楼上楼下都搞不清,不要在这里丢人现眼了,回家拾牛屎吧

楼上:我觉得你很幼稚,这样说有意思吗?你这样做反而让别人觉得你像条狗,一条捧云风臭脚的狗。

云风您好:
请不要介意啊。三无之徒是我最近收养的一条流浪狗,没栓好,放出来叫了几声。吵着大家了,对不起啊

可以实现出来加入popo,先宣传下,看能不能吸引一些用户,呵呵!hoho。。。

ps:说起xmpp,这个协议用了xml交换数据,关于xml这个东东,我觉得这玩意虽说很多标准都采用,讲出来也感觉特正规,特有技术感。但这玩意文本协议,解析也稍麻烦,信息里垃圾过多,传输效率感觉就低下去了。在高用户量下,这增加的些许消耗,至少会引发多加上n多服务器的麻烦。高访问量的东东,就像memcache,现在不都流行二进制协议了么,其之前的文本协议也是巨简单的协议。用xml的话。。。这也说明了一些问题。现实中,好看的东西不一定好用。更何况高用户下,平时可以稍微忽略的性能问题变得至关重要,不要说机器时间比人的时间便宜,想想fb拼命优化的那么一点性能,,,

奇怪有些人说tx技术不比不过很多公司,不知是不是只有新颖度高才算技术好,巨大访问量下的复杂应用,不知道算不算技术强?除了google fb twitter等等少数几个公司,全球还有哪些公司能扛住几kw用户的活跃访问量,不要说用服务器堆起来的,tx如此多的服务,技术差点那个服务器需求量是海量的。。。不要说就算没tx,也会有一个公司起来的,想想icq,真是tx挤死的么?能活下来,本身就说明了问题。不要说抄袭,tx固然是依靠了巨大的用户基数,但是tx对产品的要求还是颇高的,比起中国大部分公司。最近也是了解了一些tx的东西,看到上面很多留言,不免感觉到一点酸味。

腾讯绝对有技术实力,按 XMPP 协议实现个互联互通的 s2s 服务。这能极大的促进互联网用户的在线交流。但是他们没有。这是我不喜欢这家公司的主要地方。而不是因为 qq 是我所在网易公司所开发的不争气的 popo 的竞争对手的缘故。

云风:你喜欢腾讯与否是你的权利,但没必要在技术上恶意中伤,按照你上面的逻辑,难道我可以认为你不喜欢网易吗?
正如楼下有位仁兄所说,如果是 GOOGLE 占领了 IM 的老大位置,你认为他还会如此“开放”吗?无论 google 还是你所在的网易,商业利益永远都是公司第一位的目标。腾讯也是一家公司,在自己的核心商业模态收到严重侵犯的情况下做出如此举动也是正常的事情,更何况腾讯把选择权交给了用户,而不是360流氓的做法。实在是真不希望在你身上看到这种技术人员的局限性以及狭隘的个人喜好。
另外,看到你的 blog 经常提到 google,想必你对 google 是情有独钟,如果可以,你可以去腾讯,因为 google 中国的副总在那里。

网络卡了一下~于是发了两次~

看了博主的想法觉得非常好,自己写了一个抓取的,简单写的,不是很规范。如果加上邮件发送还有数据库存储就能够达到要求了。不过我没有好的服务器,要是能够部署到GAE应该不错。
地址:http://www.feeqi.com/?p=131001

看了博主的想法觉得非常好,自己写了一个抓取的,简单写的,不是很规范。如果加上邮件发送还有数据库存储就能够达到要求了。不过我没有好的服务器,要是能够部署到GAE应该不错。
地址:http://www.feeqi.com/?p=131001

小心深圳南山法院

没有人可以说服那些认为google已经退出中国,而从没听说“GTalk”一词的人转向GTalk

云风兄,其实我是这样想:
就一个互联网产品而言,如果你喜欢的东西,你的同事,你的交际圈内的朋友都不喜欢,我觉得这个你不需要反省自己的想法,相反我觉得你应该继续坚持你的想法,我相信你大多数时候你是对的。

如果你喜欢的东西,大多数普通网民都不喜欢,那恐怕就不是别人喜好有问题的。

这是我对你关于gtalk的看法的看法。

开放,互通,减少人为的障碍和资源层面的竞争,让创新更自由,这是生存之后更高的追求

听说uc,popo还有飞信在商讨im互通

1、要做一个关系链迁移工具确实不难,难在怎样推广。
2、公司的产品,总有从技术和产品两个方面去思考吧。从技术上讲,开源好,但是,公司的目的是赚钱,是天生站在产品这一边的,封闭才是王道。谷歌只把自己的论文贴出来,核心实现的难度不亚于写出论文本身吧,这是一种技术封闭。
3、同样站在产品的角度,现在的大部分用户(小白用户)对于迁移自己的关系链,更会觉得麻烦。
4、过于注重技术,就应该去搞研究的吧。
技术和产品总是很难统一起来。于是,在腾讯,技术人员很难推动一个产品吧。
PS:@alex
qzone怎么让你看出腾讯技术不行了?qzone自己觉得只要贴合用户体验,并且能做到尽量减小流量(响应速度可以用服务器堆出来),做好这些技术就够了。

关注。。。。。。
正开始迁移出QQ。

顶,TX太霸道了,在这样下去就没天理了!coder不下地狱谁下,现做出来,bs一下TX

QQ不好,但我觉得他除了总抄袭模仿别人,让有创意的小公司没有发展的空间(这是法律不完善的原因),其它的我觉得没有什么不好啊。

不要说腾讯收费多黑,这是小白的说法,你可以不花的!我就没有花过钱,照样聊天,记日志,偷菜……

不要说什么侵犯用户隐私,这都是360假借安全之名,极力恫吓用户的流氓手段!

主要是被扣扣保镖搞残的,那个保镖太流氓了。

它公然劫持了QQ的按钮,废掉了QQ的各种功能,屏蔽了大量QQ的主要业务,甚至修改按钮直接指向360!而这些功能完全和360所号称的保护用户隐私完全没有关系,360凭什么这么做啊……这是赤裸裸的流氓啊!

这已经不是一个软件和软件吵架的问题了,这是对竞争对手肆意地没有底线地破坏,连别人软件上的按钮都要拿来为自己所用,这样的公司真是流氓得史无前例。

这样360作为安全软件控制了整个QQ的聊天入口。QQ的所有数据包括登录账户、密码、好友、聊天信息都得被360过滤之后才送还给QQ用户。

所以QQ才不得不推出不让装有360软件的电脑运行QQ。

360这流氓很牛B,周鸿祎得意洋洋地宣布,360早有准备,准备了web qq来应对。但那到底是腾讯的qq,几十分钟后,腾讯才关闭了web QQ。

腾讯这也是迫不得已啊。

呵呵,我以前把云风这种思维方式取个名字叫中国技工,今天赫然发现码农这个字更贴切,更潮,也更中国,code farmer,毕竟俺们中国几千年都是个农国,不管今天取得多么大的成就,思想还是那么的农,我过去举过例子,一个煎油饼的遇到各方面条件合适,能煎成万元户,甚至百万千万亿万,but so what ? 他的思想永远只能是油饼

程序员都喜欢开放, 谈开放, 当云风谈到"这能极大的促进互联网用户的在线交流。"的时候, 就注定云风是在一个理想化的环境去讨论问题, 而且是在以真正通信的角度去谈, 忽视了用户的另一个需求娱乐, 腾讯作为企业, 不是互联网的慈善机构, 垄断是他追求最大利益的必须手段, 同时开放也会成为它在必要时的一张底牌, 腾讯有webqq, qq, tm, 概念版等众多qq产品针对不同层面的客户, 它没有因为垄断是丧失了技术进步和引领互联网方向, 而网易一款popo就做的让网易如此无力, 不能不说这2家公司在对待产品, 对待互联网发展上有天然不同, 不管是苹果, 还是google都在不遗余力封闭, 垄断自己的技术和领导地位, 开放只是一个广告术语.

要QQ实现XMPP难于上青天,失去垄断的客户端,会要了TX的命。

写了篇,类似的:

http://www.sineysoft.com/blog/post/113.html

webqq关了是因为出了新版本了吧。
不知道web2.qq.com有没有试过,

想法很傻很天真

这个好像已经做出来了,已经出Gtalk的时候,有人实现了这个功能,Gtalk中加QQ和MSN的好友。google一下

==========

没有QQ。Q没有开放服务器地址。

膜拜云大大

读完就明白,你永远只能当个码农,典型的工程师思维!

腾讯这么牛的公司难道连个防外挂也做不出来么

@freetao

如果可以写篇具体的教程,就不会那么容易让人误会为装逼贴了。

Posted by: freetao | (46) November 4, 2010 08:01 PM

看到这回复,手贱点进了发言人的博客,想起了射雕最后那段几个年轻人的华山论剑。。。后生可畏啊

个人觉得QQ的IM是用户体验最好的,那个神马MSN,gtalk等等之类的,要截图没截图,你们懂的,不能截图发送,我丢了个去,也太不方便,要么就没群和群组功能,要一帮人讨论问题咋办,现在都30多个群了,还干掉了一些不怎么说话的,再就是那个UI,能做的好看点么?我用个软件还看着苦瓜一样的界面,我要抓狂。

其实tencent抓狂的原因就是360正在干这个事情

QQ现在的问题不在于用户群,而是一个庞大的用户附加服务集群,这让它的产品带有极大的用户黏度,所以,QQ服务现在越来越流氓了。至于google talk,用起来很简洁,但是开始的认证很让人纠结,那一次又一次的账号锁定喝密码错误简直是摧残。

我觉得有必要做一个gtalk加强版,用来提升用户体验,最少需要添加截图,发送表情,等。
至于好友迁徙,并不是很有必要。

如果可以写篇具体的教程,就不会那么容易让人误会为装逼贴了。

1.开放协议是不错的建议,但是有个前提是:不考虑商业利益!对于qq来说,开放无异于自杀.
2.一个悲观的事实是,大凡优秀的(或者占有率高的)产品,大部分都是封闭的(如windows,iphone), 开放的都活的不怎么样(linux,gtalk, ...)。

咦?风云老师这么给力!

QQ邮箱有个导出QQ邮箱联络人的功能,邮箱的联络人基本就是QQ好友了,导出个address.csv文件,不知道能用吗这个

360表示全程赞助!

的确,QQ现在的重度用户都是QQ秀,偷菜之类的附属机能。光导出好友已经不足够了。

一年前我就发布了类似的消息

云风,支持你

jabber协议并不是很好,私有协议我也不反对,但是服务器短要支持XMPP S2S federation就好。

人人网和facebook都可以用第三方xmpp登录,但是都不支持S2S federation。

开放不开放协议,我觉得更大层面是市场行为,没什么觉悟不觉悟的。Google在IM领域是绝对后来者,所以,选择一个开放的方式很符合逻辑。假想Google是先来者,已经处于垄断地位,那选择开放还是不开放,就值得商榷了。事实上,垄断者的名声总是很臭的,比如微软,比如腾讯,另一个层面,垄断者在垄断领域的收入都是无可比拟的。这估计就是所谓的鱼与熊掌不可兼得了。

可怕的惯性和对新技术的惧怕,让许多人守着QQ不肯出来。

我很少用IM软件,因为我觉着在大部分时间中IM对生产率是有坏的影响,会打断工作,但我的朋友们用QQ较多,他们已经习惯了QQ的使用,对他们来说,上网就是看电影,上QQ。
另外有个问题,当云风的构想实现时,这个提供服务的机构是否也会变“坏”,比如,添加广告,出卖用户资料,因为逐利是商业的本性,如何在运营中监管是个大的问题。

顶gtalk 如果能截图就更好了,至于群和远程不是很关键

店大必然欺客吗?

@zhubin

这个系统只是帮助你提示谁(你的某 QQ 好友) 正在使用另一种 IM ,帐号是什么。

加不加他是你自己来决定的。

如果有多个 qq 号提示某同一个 IM (比如 gtalk) 帐号。

只需要在提示信息里写的更明确就好了。

比如:

您的 qq 好友 12345678 在 2010 年 11 月 3 日提交了它的好友名单。但是他提交的名单中没有你的 QQ 号码。他正在使用的 gtalk 帐号是 XXX

同时他在 2010 年 11 月 4 日,提交了另一份好友名单,其中匹配到了你的 QQ 号码。他正在使用的 gtalk 帐号是 YYY

这个仔细设计一下,很容易做好的。

貌似XMPP客户端的库不支持UNICODE?

能离开QQ的,直接关闭就离开了;离不开的,各种迁移办法都困难。

就这些方案,似乎没法处理QQ群。

这个好像已经做出来了,已经出Gtalk的时候,有人实现了这个功能,Gtalk中加QQ和MSN的好友。google一下

当然是自己提交,自己说我 QQ 12345678 在用 foobar@server.com 这个 IM 帐号

如果又来一个人说:

QQ 12345678 在用 xxx@server.com 这个 IM 帐号

而实际上后者想冒名顶替,该如何验证?

一直都在用飞信,感受着它一点点在进步~

gtalk 的 PC client 支持发送图片,并直接在对话框显示。其实做个第三方软件截屏发送应该很容易的。无非就是截屏保存成文件,然后自动拖进 gtalk 的对话窗口。

google wave一直没用起来比较可惜,现在还有一个问题就是gtalk还不能截图吧,这个也挺需要的

支持这个东西

这东西如果做大了应该是中国互联网一场轰烈的运动吧

哈哈,互联网上还是可以找历史的。原来叫odigo

http://www.yesky.com/286/1618286.shtml

记得当年网易还有过一个合作的聊天软件叫什么 netease odingo之类的,名字记准了,中文叫什么口对口吧。界面在当年还挺拉风的。

@Cloud

gtalk我也一直在用,用户体验很google很简洁。但是在网络不佳的情况下,QQ掉线的概率要小得多,同样,QQ视频、文件传输也比Skype和gtalk快速稳定得多,特别是在校园网上。

然后QQ对各种手机的支持也都很好,这个除了飞信,其他都比不了。

同时QQ弹窗要比msn、迅雷要好很多,至少弹出的新闻质量比较高,广告相比之下也不算太多。

我觉得技术牛人往往会陷入Geek思维。腾讯的技术水平可能是远远没很多公司高的(看那个乱七八糟的QQ空间就知道),但是QQ有一点很强:擅长切实地去分析普通用户的实际需求,并把一些细节做好。

希望网易、搜狐这些公司能学习腾讯这个优点,多做出一些能让人用得起来的产品,让我们普通用户有
更多的选择,而不要沾染上腾讯的恶霸习气或者360的流氓思想。加油,哈哈

其实popo还挺好用的~msn太烂了。

期待一下你的作品,

嘘!别出声,我XXX公司决定应聘你了!!!

关注一下~
身为Miranda IM、Pidgin和WebQQ用户,俺一直在观望这么一个东西的诞生……

主题怎只用半张纸

身边居然没有一个人用Gtalk,无法做出评判。试验过给别人的Gtalk留言,界面比较奇怪。不过也可能是第一次使用,没有习惯。

期待云风大侠出手。

另外:“不屑于力” 应该是 “不懈余力”。

我倒是有周同学的电话,不过没打过 :)

很好的想法,如果真的做起来了,说不定真的会有很好的市场,指不定360还会帮忙推广呢。

@zhubin

当然是自己提交,自己说我 QQ 12345678 在用 foobar@server.com 这个 IM 帐号

信息保存当然是 gtalk 最方便了。

msn 超级滥,还是不要用了。

整片文章都在讲如何让自己的服务器获取各用户之间的关系,显然难点不在这里,在于如何知道某个帐号或者某个qq号属于谁。
比如有人登录了你的服务器提交了一个qq号为123的好友,你的服务器又如何知道使用123帐号的用户就是你的好友,因为你没有123这个账号的密码。

因为这场大战,今天大家都纷纷把MSN账号翻出来使用。不过它的界面确实很不方便,广告也很多。总体来说,并不如popo好用。群的聊天室机制是很开放,不过不太利于信息的保存。

@alex

如果经过用户授权,从各个角度看,这都是合法的。

首先,提交的信息都是明文。就是好友列表。即使不用程序抓,用户也可以自己输入。告诉别人,我有哪些好友是我的权利。

提交的信息是经过确认的。

抓取好友列表和提交的程序是开源的,完全可以接受审核,不会盗取隐私。你也可以主动删去一些你不想提交的信息。

并不是说 qq 的用户体验不好,或推荐别人用别的 IM 而不用 qq 。(虽然我并不觉得 qq 的用户体验好,比 gtalk 那是差太多了)

只是给用户一个选择,而不是靠用户关系帮用户绑死。

人家换手机号还让群发给联系人说我换手机号了。难道移动的服务器还把这些换号信息封了?

alex的观点我同意……

而且,我觉得哪怕是横向比较各个平台(mac,linux……),Windows 下的QQ也是用户体验最好的IM客户端。

好友名单可以用QQ邮箱直接导出

我原来也是这么想的,只要把数据导出来就可以了。
但很多小朋友们用qq不是看中聊聊天的功能,更多的是像qq秀、会员等级这些非核心的东西

从各个角度看,这都是违法的……

说到底国内这些im在文件传输、稳定性、视频聊天、手机应用各方面做的确实远远不如qq。用popo之类不如直接用gmail了。

不过如果能做一个东西,不仅仅能抓qq好友,也能抓msn好友、人人网好友,然后交叉通知那倒也不错。

Really a good idea!

你要小心腾讯啦,^-^

Post a comment

非这个主题相关的留言请到:留言本