同步消息到腾讯微博

40 条评论

上次的说将消息同时发布到15个微博服务的时候,我连 dii 这类小众的都加了进来,却偏没有介绍腾讯微博的同步方法,倒不是不小心漏掉,而是要将消息同步到腾讯微博上去,确实不容易,没有公开 API,同时登陆过程也比一些网站要复杂得多,我虽然折腾了很久,但也并没有成功,后来搜索才发现,早有人做出了第三方的 API 来,不过大多只有通过 API 来查看消息的功能,没有讲到更新的方法。然而我想,既然能查看了,那么至少登陆问题是解决了的吧,这也能为我所用不是,这里介绍的方法基本上便是参照 Neeke 的文章 腾讯微博API ,即使后面的更新方法,也要感谢 Neeke 的指导-.-

如果你有时间,还是推荐先阅读一下 Neeke 的这篇文章(腾讯微博API ),然后我再转述一下向腾讯微博发送消息的过程吧。

要向发送消息,首先是需要登陆账户,腾讯微博的登陆过程很 DT,据 Neeke 的分析如下:首先带 QQ 号向 http://ptlogin2.qq.com/check?uin='+ user +'&appid=46000101 请求,返回一个验证码,浏览器输入地址就可看看效果,喏~

send2qq-1

然后将将用户的qq密码经过 md5_3加密,加密后的结果后面再跟上返回的验证码,再使用 md5 加密一遍这个新的字符串,得到的加密结果则连同QQ号,验证码再发送到 http://ptlogin2.qq.com/login?u='+ user +'&p='+ password +'&verifycode='+ qq_verify +'&aid=46000101&u1=http%3A%2F%2Ft.qq.com&h=1&from_ui=1&fp=loginerroralert 完成认证,当然这这两个过程中必须要为同一个会话,否则验证码就对不上来了。接下来转向 http://t.qq.com 最终完成登陆。

知道了整个登陆过程,接下来发送消息该简单多了吧,我留言询问 Neeke,一天后得到了回复,提交 content 等几个参数给 http://t.qq.com/publish.php 即可。几次尝试,再修改,增加了一些参数后终于成功,手动地示例一遍吧

send2qq-2

完整地发布消息便就这么几个步骤了,简要说明一下,第一句获取验证码,保存 cookie ,第二句,使用处理过的密码等提交,得到登陆成功的返回消息,第三句,访问一下 http://t.qq.com ,最后是提交消息,记得用 -e 参数,其他的 countType 和 pic 留空,viewModel=0。

改为 Python 函数吧,包括自行处理 md5 加密部分的,如下

  1. import os,re,urllib,hashlib
  2. def    UpdateQQ( user , password , message ,p_add):
  3.     print u'更新腾讯微博...'
  4.     os.system(curl +' -c qq.txt \"http://ptlogin2.qq.com/check?uin='+ user +'&appid=46000101\" > qq_verify.txt 2>nul')
  5.     qq_verify=file('qq_verify.txt').read()[18:22]
  6.     md5=hashlib.md5()
  7.     md5.update(password + qq_verify)
  8.     password=md5.hexdigest()
  9.     os.system(curl +' -c qq.txt -b qq.txt \"http://ptlogin2.qq.com/login?u='+ user +'&p='+ password +'&verifycode='+ qq_verify +'&aid=46000101&u1=http%3A%2F%2Ft.qq.com&h=1&from_ui=1&fp=loginerroralert\" >nul')
  10.     os.system(curl +' -c qq.txt -b qq.txt \"http://t.qq.com\" >nul')
  11.     os.system(curl +' -c qq.txt -b qq.txt \"http://t.qq.com/'+ p_add +'\" >nul')
  12.     os.system(curl +' -e \"http://t.qq.com/oooooooooooooooooooooooo\" -b qq.txt -d \"content='+ message +'&countType=&pic=&viewModel=0\" \"http://t.qq.com/publish.php\" >nul')
  13.     os.system('del /q qq.txt')
  14.     os.system('del /q qq_verify.txt')
  15.    
  16. UpdateQQ('qq number','md5_3 password',message,'nickname')

对于传入的 md5_3 加密qq密码后的结果,可以保存此 html 文件,将代码最后一行改为自己的 qq 密码,用浏览器打开一下就看到了。

相关日志 Relate Posts

“同步消息到腾讯微博”40条留言

  1. 每一次碰到腾讯总是要绕不少圈子- -真麻烦……

    • @littlewater 是的,腾讯很麻烦..

    • @起衣 

      但是不太懂的人们都用腾讯,离开不了……

  2. 起衣童鞋对PYTHON相当熟悉啊,这个强大。顺便把NEEKE童鞋的博客收藏了。 :twisted:

    • @荒野无灯 我是初学者呢…你看很多功能就直接调用外部命令叻…不过关键也是curl太强大了-.-

    • @荒野无灯 
      收藏吧,但是别用这么邪恶的表情。 :arrow:

  3. 果然很专业~~!

  4. :grin: 没想到curl还能在dos下用啊,看来我out了。

    • @Neeke 这样win下用curl也就方便了-.-

  5. 我根據那個API做了騰訊微博同步twitter的工具http://jodis.me/51/q2t.html

  6. 大侠,你这段代码我用python 2.5.4怎么运行出错,说是 “curl”这个东西没有定义。

  7. 很强的代码,果然行得通。顺便跟Neeke的php代码对比了一下,发现最后发表的那一段如何改成php的代码啊?因为不同点就在这个地方吧?上面调用mine页面也不太一样。因为我网站只支持php语言,所以想看看最后发表微博的那一段怎么转成PHP语句。

    • @转烛 刚折腾了一下,暂时可以用PHP语句了。

    • @转烛  :grin: 搞定了就好!

    • @转烛 不错,不知转烛最近在使用的时候有没有遇到验证码获取错误的问题?

    • @Neeke Neeke来啦~,最近验证码老是请求错误,有什么解决方案不?

    • 没有遇到。难道就是Neeke文章评论里有个人说的sid的使用有限制?当然我只是猜测。。我这边暂时还没遇到你说的这个问题,一直试用是正确的。

    • @转烛 估计是同一客户端在一段时间内的登录次数限制,唉,试试将cookie保留下来-.-

  8. good !

  9. 有办法用这种方式同步到腾讯微薄图片吗?

    • @@kelven 图片没研究过额。。

  10. :cry: :cry: 邪恶腾讯

  11. 发现从11月5日起,QQ加强了登录安全验证。现在貌似缺省都必须是验证码了!不知道大家有否遇到?

    • @ahu 估计以后要手动输验证码叻。。。

    • @ahu 今天再看的时候,腾讯已经恢复了,不会一直需要输入验证码叻。

    • @起衣 哈哈,太好了 :lol:

    • @ahu  :wink:

  12. 最后那个html文件找不到了 何解?
    def Md5_3(password):
    m1 = hashlib.md5()
    m1.update(password)
    m2 = hashlib.md5()
    m2.update(m1.digest())
    m3 = hashlib.md5()
    m3.update(m2.digest())

    return m3.hexdigest()
    我这样MD5_3不对么?

  13. 那个搞定了 还有就是中文咋解决呢?

Pingbacks/Trackbacks

  1. [...] This post was mentioned on Twitter by 起衣, 起衣. 起衣 said: 同步消息到腾讯微博 http://isouth.org/archives/279.html [...]

  2. [...] 本文主要参考了三篇文章:腾讯微博API,同步消息到腾讯微博,发布一个Follow5的API PHP类 。因此如果你对本文有任何不理解的地方,可以详细阅读以上文章。 [...]

  3. [...] 本文主要参考了三篇文章:腾讯微博API,同步消息到腾讯微博,发布一个Follow5的API PHP类 。因此如果你对本文有任何不理解的地方,可以详细阅读以上文章。 [...]

  4. [...] 本文主要参考了三篇文章:腾讯微博API,同步消息到腾讯微博,发布一个Follow5的API PHP类 。因此如果你对本文有任何不理解的地方,可以详细阅读以上文章。 [...]

  5. [...] 那篇 同步消息到腾讯微博 ,这里只是将其结构做了一下改进,另外保存了 cookies,也将 MD5_3 [...]

  6. [...] 那篇 同步消息到腾讯微博 ,这里只是将其结构做了一下改进,另外保存了 cookies,也将 MD5_3 [...]

  7. [...] 那篇 同步消息到腾讯微博 ,这里只是将其结构做了一下改进,另外保存了 cookies,也将 MD5_3 [...]

  8. [...] 本文主要参考了三篇文章:腾讯微博API,同步消息到腾讯微博,发布一个Follow5的API PHP类 。因此如果你对本文有任何不理解的地方,可以详细阅读以上文章。 [...]

发表留言(Ctrl+Enter提交)