同步 WordPress 博客日志到新浪微博

      很早就听说新浪开放了自己的微博API,而且是完全开放的,就像twitter一般。新浪微博 API,覆盖了新浪微博的全部功能,可以通过 API 发微博,传照片,加关注,甚至搜索等全部功能,这等于不用上新浪微博就可以做任何事。虽然自己不玩新浪微博,目前@hesiway仅有一条信息,但常年驻扎在新浪微博上的朋友同步 WordPress 博客日志到新浪微博来推广自己的博客却一种很好的方式。API一开,类似插件就蜂拥而至了。其中我看到我爱水煮鱼开发的插件很有启发,并且给出了开发思路:

首先是创建更新状态到新浪微博的函数,这里用到的是WordPress 自带的WP_Http 类。

function update_sina_t($status){
    $username = "你的新浪微博的帐号";
    $password = "你的新浪微博的密码";
    $api_url = 'http://api.t.sina.com.cn/statuses/update.json';
    $body = array( 'status' => $status,'source'=>'3279848611');
    $headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") );
    $request = new WP_Http;
    $result = $request->request( $api_url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers ) );
}

      然后 WordPress 日志发布之后的 hook 是publish_post,在这个action 执行的时候执行上面的函数,从而同步 WordPress 博客日志到新浪微博,但是这样任何一次在 WordPress 后台点击更新日志都会触发这个 action,就要用自定义字段记录是否已经把日志同步到了新浪微博:

add_action('publish_post', 'publish_post_2_sina_t', 0);
function publish_post_2_sina_t($post_ID){
    $sina_t = get_post_meta($post_ID, 'sina_t', true);
    if($sina_t) return;
    $status = $_POST['post_title'].' '.get_permalink($post_ID);
    update_sina_t($status);
    add_post_meta($post_ID, 'sina_t', 'true', true);
}

      复制以上两处代码到主题的 functions.php 文件就可以了。我测试了下,发现这样每次更新完博客日志后就会发一条本文标题和链接到新浪微博。这也引起了我对新浪微博API的兴趣,查看了它的API文档和开发指南,大致了解了一番,收获不少。

评论

《 “同步 WordPress 博客日志到新浪微博” 》 有 39 条评论

  1. fly3q 的头像

    呵呵,终于开放了,之前不是说不开放的吗?相信最终拥有了开发者还是走向了封闭的吧

    1. hesiway 的头像
      hesiway

      @fly3q, 开放才能长久生存下去~

  2. 昵称 的头像

    cool,试试去

    1. hesiway 的头像
      hesiway

      @昵称, 恩,很好的功能扩展~

  3. 阿邙 的头像

    和我用的差不多 呵呵

    1. hesiway 的头像
      hesiway

      @阿邙, 恩~思路应该差不多~方法不唯一~

  4. 岸边 的头像

    博主测试成功了?我也要去注册个号试试

    1. 岸边 的头像

      @岸边, 我主题在functions.php添加代码就出错,

      1. hesiway 的头像
        hesiway

        @岸边, 刚才看了代码,发现代码中“>”被转码了,现在试试~

        1. 岸边 的头像

          @hesiway, 我直接用的插件了,挺方便的。 :嘻:

  5. 杜小白 的头像

    等学习结束了,我也去折腾一下,话说我的新浪微博还没发过推···哈哈

    1. 杜小白 的头像

      @杜小白, 新浪暗地里也是挺强大的,貌似还有云计算服务的。

    2. hesiway 的头像
      hesiway

      @杜小白, 我的也荒废着~现在应该能一天发一条更新了~

  6. 小松 的头像

    现在的微博api开放得很好啊~特喜欢~

    1. hesiway 的头像
      hesiway

      @小松, 恩,国内目前微博就新浪有前途~

  7. 丕子 的头像

    新浪微薄自己就带着同步关联工具

    1. hesiway 的头像
      hesiway

      @丕子, 恩,是有现成的工具~这里只讲了个思路而已~

  8. 视界之窗 的头像

    要去试一试 :强:

    1. hesiway 的头像
      hesiway

      @视界之窗, :微笑: 很实用的一个方法~

  9. 先看看 的头像

    的确看到很多人都这样操作了

    1. hesiway 的头像
      hesiway

      @先看看, 恩。简单有效~

  10. sky 的头像

    这个功能倒是非常的实用的

    1. hesiway 的头像
      hesiway

      @sky, 呵呵,对我不用微博的人用处不大,学习的是个思路~ :微笑:

  11. 4399 的头像

    这个方法很邪恶额啊!

    1. hesiway 的头像
      hesiway

      @4399, :帅:

  12. A.L 的头像

    转载继续

    1. hesiway 的头像
      hesiway

      @A.L, :嘻: 记得加署名~

    1. hesiway 的头像
      hesiway

      @灵亦, :嘻:

  13. glwzu 的头像

    多加几个微博啊,有的没的全加,加强宣传! :强:

    1. hesiway 的头像
      hesiway

      @glwzu, 账号@hesiway,要加的感觉咯~

  14. 刘志猛 的头像

    看来WP真的很强哦
    唉,早知道用WP了

    1. hesiway 的头像
      hesiway

      @刘志猛, WordPress是用来折腾的~现在改过来也好啊~呵呵

    2. 岸边 的头像

      @刘志猛, PJ可以转换成WP :偷笑:

  15. 闲云野鹤 的头像

    现在流行微博啊,呵呵,都吧微博放博客上了!

    1. hesiway 的头像
      hesiway

      @闲云野鹤, 这是把博客更新提交到微博~

  16. freetstar 的头像

    新浪本身就有这个同步WP博客的功能,我正在用着了 :嘻:

    1. hesiway 的头像
      hesiway

      @freetstar, 恩,是滴,~他都自己提供了这功能~

  17. cheng 的头像

    来这看看……