获得腾讯微博的信息

熟悉我的人都知道我之前用的是嘀咕,但是自从嘀咕转型后就没怎么去用过了。现在以邪恶的企鹅微博为主,但是一直以来腾讯微博的调用是个麻烦事,它的微博秀使用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>";

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

THE-END

AI 评论

由 Google AI Gemini Pro 生成

博主分享了获取腾讯微博信息的技巧,介绍了如何通过JSONP和RSS两种方式获取腾讯微博的信息,以及如何将这些信息展示在博客中。博主还贴心地提供了代码示例,方便读者学习和使用。感谢博主分享的实用教程,让大家更容易获取和展示腾讯微博的信息。

添加评论

已有 62 条评论

  • 浩子
    贵州

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

    • 冰剑
      广东

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

      • 独木
        湖南

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

  • 熠熠
    湖北

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

    • 冰剑
      广东

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

  • winy
    北京

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

  • lee
    lee
    广东

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

    • 冰剑
      广东

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

  • MOPVHS
    浙江

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

  • yalon
    辽宁

    最近尝试过这个方法

  • 飞天舞
    四川

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

    • 冰剑
      广东

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

  • 阿飞
    四川

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

    • 冰剑
      广东

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

  • SayMe
    山东

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

  • SayMe
    山东

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

    • 冰剑
      广东

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

  • 飞天舞
    四川

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

    • 冰剑
      广东

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

      • 飞天舞
        四川

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

  • IM路人
    浙江

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

  • Melody
    内蒙古

    能不能直接调用。。

    • 冰剑
      广东

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

      • Melody
        内蒙古

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

        • 冰剑
          广东

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

  • SayMe
    山东

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

    • 冰剑
      广东

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

  • 木木
    浙江

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

    • 冰剑
      广东

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

  • 木木
    浙江

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

  • ShingChi
    ShingChi
    广东

    这个蛮不错的。

  • 不亦乐乎
    福建

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

    • 冰剑
      广东

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

  • seri
    上海

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

  • 笨小孩
    广东

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

    • 冰剑
      广东

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

  • liulin
    安徽

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

    • 冰剑
      广东

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

  • liulin
    安徽

    ,{"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"等等,怎么才能比较好的统统调用、显示出来呢?
    谢谢了哈

    • 冰剑
      广东

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

  • nicholasyy
    湖南

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

    • 冰剑
      广东

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

  • ETC
    湖南

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

    • 冰剑
      广东

      确实,这样有些麻烦。

  • T先生
    四川

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

  • 小鱼叉
    北京

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

  • 飞天舞
    四川

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

    • 暮春
      北京

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

  • 飞天舞
    四川

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

  • 让一步
    让一步
    吉林

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