获得腾讯微博的信息

/ 折腾 / 编程
2,483 字 / 约 7 分钟

熟悉我的人都知道我之前用的是嘀咕,但是自从嘀咕转型后就没怎么去用过了。现在以邪恶的企鹅微博为主,但是一直以来腾讯微博的调用是个麻烦事,它的微博秀使用iframe标签来嵌入的,让人很蛋疼,不能去修改它的显示样式,完全不能和博客同风格。前段时间开放平台中放出了RSS和JSONP的地址,这样的话就能够订阅到最新的消息了。

开始告诉你们怎么折腾吧,首先你要有两个QQ,第一个是你当前用的,第二个随便什么都可以。然后用你第二个QQ去开通微博,收听你但前用的微博,注意,只能收听你自己一个,那些什么推荐收听的V都跳过。最后你再进入这里,获得JSONP的地址。下面给出关键的代码部分。

function get_qq_mirco_blog_info($format = '<a href="{permalink}">{content}</a>',$num = 20)
{
    $qqRSS = '这里填写JSONP地址'; //注意:是第二个QQ的JSONP地址
    $contents = file_get_contents($qqRSS);
    $str1 = strpos($contents,'[');
    $str2 = strpos($contents,'],"fans":');
    $json = substr($contents,$str1, $str2 - 17);//这个地方不知道是否通用
    $json = stripslashes($json);
    $json = json_decode($json, true);
    for ($i=0;$i&lt;$num;$i++){
        $content = $json[$i]['content'];    //内容
        $time = date("n月d日 H:i",$json[$i]['timestamp']); //时间
        $permalink = "http://t.qq.com/p/t/".$json[$i]['id']; //链接
        $form = $json[$i]['fromarea'];  //来源
        $type = get_qq_mirco_blog_type_info($json[$i]['type']); //类型
        $count = $json[$i]['count'];    //转载次数
        echo str_replace(array('{content}','{time}','{permalink}','{form}','{type}','{count}'),array($content,$time,$permalink,$form,$type,$count),$format);
    }
}
function get_qq_mirco_blog_type_info($type)
{
    $result = "";
    switch ($type) {
    case 2:
      $result = "转播: ";
      break;
    case 3:
      $result = "私信: ";
      break;
    case 4:
      $result = "回复: ";
      break;
    default:
    }
    return $result;
}

把这段代码放入function.php文件中,然后在模板中调用代码get_qq_mirco_blog_info();。

该函数有两个参数,第一个是定义的格式,格式的参数请看for循环里面的注意;第二个是调用的条数,最多20条。

具体的调用代码就是这样了,我没有单独的测试,反正在自己的博客中是没有问题的,效率上我也不能保证什么,但是至少是比民间的API快吧,还有什么问题请留言吧。另外再给出一个获得RSS版的代码。

$qqRSS = 'RSS地址';
$XML =new DomDocument;
$XML->load($qqRSS);
$Items = $XML->getElementsByTagName("item");
echo "<ul>
  ";
  foreach ($Items as $Item)
  {
      $title = $Item->getElementsByTagName("title")->item(0)->nodeValue;  //内容
      $link = $Item->getElementsByTagName("link")->item(0)->nodeValue;  //链接
      $time = $Item->getElementsByTagName("pubDate")->item(0)->nodeValue;  //发布时间
      $times = time_tran(date("Y-m-d H:i:s",strtotime($time)));  //发布时间
      echo '<li>
    <div class="top">
      '.$title.'
    </div>
    
    <div class="bottom">
      <a target="_blank" href="'.$link.'">'.$times.'</a>
    </div>
  </li>';
  }
  echo "
</ul>";

我的腾讯微博,欢迎收听我的微博:@冰剑

评论

62

留下一条评论

取消回复
  1. 嘀小咕
    由 AI 生成 · 仅供娱乐
    哈哈,你又折腾腾讯微博的接口了,看着真过瘾!我还是喜欢这样的自定义方式,比那些官方固定样式酷多了。你这种解决问题的方式太帅了,代码写得很清楚,我回头也试试看。
  2. 浩子
    浩子
    贵州/Windows/IE

    我R
    还要2个QQ号才可以啊
    。。。
    OH NO。。。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      这个。。。。是的,能实现就行了,哇哈哈。。

      1. 独木
        独木
        湖南/Windows/Chrome

        如果 把json.php?type=2 等于1那么应该可以直接用自己主号 {请选择消息类型:1 我的广播 2我的首页时间线}

  3. 熠熠
    熠熠
    湖北/Windows/IE

    function.php?是主题里的文件吗?没有耶···

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      是主题里的啊,没有的话就去复制一个默认主题的。

  4. winy
    winy
    北京/Windows/Firefox

    太麻烦鸟,不用这个,还是推特好了

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      推特太遥远了。

      1. 无冷
        无冷
        四川/Windows/Chrome

        新浪呢

        1. 冰剑
          冰剑 博主
          广东/Windows/Firefox

          新浪用于看明星的。。

  5. lee
    lee
    广东/Windows/Chrome

    博主你好,请问如果要获取某话题下的内容,例如 #binjoo# ,请问如何写代码?谢谢

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      能力有限,不会弄。
      不好意思。

  6. MOPVHS
    MOPVHS
    浙江/Windows/Chrome

    凸^-^凸 好淫荡的获取方法~~~

  7. 海天无影
    海天无影
    江苏/Windows/Chrome

    呵呵 这个方法 很强大啊

  8. yalon
    yalon
    辽宁/Windows/Chrome

    最近尝试过这个方法

  9. 飞天舞
    飞天舞
    四川/Windows/Chrome

    调用成功了,改了后半天没动静,还以为没搞对。等了会就好了,哇哈哈,这个功能真不错!

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      木有看到你博客上有微博,求地址。。

      1. 飞天舞
        飞天舞
        四川/Windows/Chrome

        右上角,我只输出了一条。

  10. 阿飞
    阿飞
    四川/Linux/Chrome

    很淫荡的方法,你的底边的面板也很强悍,膜拜会折腾的强人

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      俺会折腾,但不是强人,吼吼。

  11. SayMe
    SayMe
    山东/Linux/Chrome

    这个要支持一下. 额 不懂这个具体效果是什么样的....
    还问博主 你下面的那个工具条是怎么弄的? wp可否搞一个?

  12. SayMe
    SayMe
    山东/Linux/Chrome

    博主可否共享一下 css配置或者别的东西啊.哈哈.刚刚弄了一个 太乱了 .没有任何格式.
    就是一坨...根本没法看.. 完全达不到博主这样的效果.看了博主的 微博 页面 感觉很好.也想弄一个

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      其实你用firefox的firebug很容易就能把工具条给copy过去的,只要懂得基本的HTML+CSS就行。

  13. 飞天舞
    飞天舞
    四川/Windows/Chrome

    发觉好像不能试试地调用出最新的微博,得等个半把个小时才能显示。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      额,这不是我的问题,找腾讯。。

      1. 飞天舞
        飞天舞
        四川/Windows/Chrome

        啊哦啊,奇了怪了,用得好好的换个空间,微博的链接就有问题了。
        输出的链接不对头,真囧。

  14. 飞天舞
    飞天舞
    四川/Windows/Chrome

    打错字了,是“实时”

  15. IM路人
    IM路人
    浙江/Windows

    貌似有点麻烦,直接用的新浪的微博秀,和我主题还挺配的

  16. 歪歪屋啊
    歪歪屋啊
    江西/Windows/Firefox

    有SINA的不~~

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      木有。。

  17. Melody
    Melody
    内蒙古/Windows/Chrome

    能不能直接调用。。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      小盆友来了,嘿嘿。。
      直接调用只能获取RSS和JSONP格式的东东。。

      1. Melody
        Melody
        内蒙古/Windows/Chrome

        如果有直接性质的API就好了

        1. 冰剑
          冰剑 博主
          广东/Windows/Firefox

          问题是没有,所以只能用这种办法。

  18. SayMe
    SayMe
    山东/Linux/Chrome

    现在sina是主流啊 哈哈 赶紧换吧.呼呼

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      sina明星化太重了,不喜欢。

  19. 木木
    木木
    浙江/Windows/IE

    我昨天晚上就是研究jsonp 搞了半天没弄明白QQ的回调函数! 其他网站的api都能正常!~
    深刻学习了~

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      我开始也是弄了半天,返回的字符串不是规则的JSON的字符串。
      截取以后才出来的。。

  20. 木木
    木木
    浙江/Windows/IE

    我昨天是想用js来调用的 楞是没解析出来~~

  21. ShingChi
    ShingChi
    广东/Windows/Chrome

    这个蛮不错的。

  22. 不亦乐乎
    不亦乐乎
    福建/Windows/IE

    难道这就是你博客侧边显示qq微博的方法?为啥要两个QQ,简单点的有木有,有木有。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      因为这是读取的订阅地址,辅QQ订阅你的主QQ,所以就要两个了。
      简单的暂时还没有发现。。

  23. 谢竟甲
    谢竟甲
    安徽/Windows/IE

    有木有插件版

  24. seri
    seri
    上海/Windows/IE

    好方法呀,谢过了。=v=

  25. 笨小孩
    笨小孩
    广东/Windows/Chrome

    对你http://www.binjoo.net/micro/这个页面的代码好奇,希望能分享

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      我都写出来了。。
      这个页面只是方法调用而已,没什么特别的。

  26. liulin
    liulin
    安徽/Windows/Firefox

    binjon哥哥丫,当我的微博中转播别人的微博的时候,怎么才能现实出来丫,纠结了好几天了,希望您能百忙之中说一下吧。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      不是不想帮,实在是没时间啊,这段时间天天加班,忙死了。

  27. liulin
    liulin
    安徽/Windows/Firefox

    ,{"content":"已阅O(∩_∩)O~","count":0,"from":1001,"fromarea":"QQ空间","id":23109117296923,"image":null,"isvip":0,"name":"seohome","nick":"小林","pic":"http://mbloghead.store.qq.com/mbloghead/84f74b0b7dbcc1e07982",

    "source":{"content":"【5元钱男孩】美国海关拍卖一批没收的脚踏车,一个十岁男孩每次第一个出价5元,然后眼睁睁看着脚踏车被别人以更高价拍走。休息时拍卖员问他为何不出更高价,男孩说自己只有5元。拍卖继续,男孩还是坚持第一个出价,最后只剩下一辆最漂亮的车,男孩轻声报出“5元”后,大家都不竞标,车归男孩所有!","count":341,"from":3,"fromarea":"网页","id":40573078047396,"image":["http://t3.qpic.cn/mblogpic/ab8914bb393dd58cc150"],"isvip":1,"name":"chuangyejia","nick":"创业家杂志","pic":"http://mbloghead.store.qq.com/mbloghead/6b875de20b794e667b44","status":0,"timestamp":1307269242,"type":1},

    "status":0,"timestamp":1307269834,"type":2},

    也上就是一条完整的转播别人的微博的jsonp源码。它多出一个"source",同时"source"里面也有"content"等等,怎么才能比较好的统统调用、显示出来呢?
    谢谢了哈

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      去看看PHP的基础,很简单的IF ELSE就能搞定,近半个月是没时间弄的。

  28. nicholasyy
    nicholasyy
    湖南/Windows/Firefox

    请问 侧栏腾讯微博的 信息滚动是如何实现的?

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      JQUERY实现的,代码自己看源码。

  29. ETC
    ETC
    湖南/Windows/IE

    只是还要专门注册一个QQ呵

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      确实,这样有些麻烦。

  30. T先生
    T先生
    四川/Windows/Chrome

    你这个代码高亮是用的什么插件呀?能自动换行,也能直接复制。

    1. 冰剑
      冰剑 博主
      广东/Windows/Firefox

      插件名叫:GeSHi 。

  31. 小鱼叉
    小鱼叉
    北京/Windows/Safari

    嘀咕一直在用,腾讯微博用的好友多,隐私易爆。。

  32. 独木
    独木
    湖南/Windows/Chrome

    先搜藏着。。。

  33. 飞天舞
    飞天舞
    四川/Windows/Chrome

    奇怪,我的莫名奇妙地调用不起了。
    http://v.t.qq.com/output/json.php?type=1&name=freewebhost&sign=552e676553c24aa3d19dff5488fe8a99f0a4a13e
    小冰棒我试试可以调用不?

    1. 暮春
      暮春
      北京/Windows/IE

      好吧,我看错了,我看成“小冰棒”了。。。。。

  34. 飞天舞
    飞天舞
    四川/Windows/IE

    原来是一键转播被取消了,现在正常了,不过获取的地址还是有问题,好郁闷的说,不清楚是为什么?

  35. 让一步
    让一步
    吉林/Windows/Chrome

    我新申请的另一个QQ,为什么我填上json,但是刷新网页的时候不显示调用的微博内容呢?

  36. 飞天舞
    飞天舞
    四川/Windows/Chrome

    侧栏和微博页面有错误了