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