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

/ 39评 / 0

      很早就听说新浪开放了自己的微博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文档和开发指南,大致了解了一番,收获不少。

  1. cheng说道:

    来这看看……

  2. freetstar说道:

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

  3. 闲云野鹤说道:

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

  4. 刘志猛说道:

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

  5. glwzu说道:

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

  6. 灵亦说道:

    :偷笑:

  7. A.L说道:

    转载继续

  8. 4399说道:

    这个方法很邪恶额啊!

  9. sky说道:

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

    • hesiway说道:

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

  10. 先看看说道:

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

  11. 视界之窗说道:

    要去试一试 :强:

  12. 丕子说道:

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

  13. 小松说道:

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

  14. 杜小白说道:

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

  15. 岸边说道:

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

  16. 阿邙说道:

    和我用的差不多 呵呵

  17. 昵称说道:

    cool,试试去

  18. fly3q说道:

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

Comments have been closed.