为了同步腾讯微博的信息到WordPress,我尝试过不少东西,有用过一个小小的插件,有用过54bq.com制作的腾讯微博的Api,感觉都不是很好用,万一有时候连不上那边的主机就会同步不过来。通过搜索发现了HzlzH搭建的腾讯微博API Beta[民间版],而且告诉了使用方法,非常好用。下面是我使用缓存版腾讯微博连接API的过程:
标签: API
-
同步 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文档和开发指南,大致了解了一番,收获不少。 -
腾讯微博API接口v2.0发布
最终使用的接口类型为js版的json接口,本API接口可以适应于任何json2.0版协议中,暂时只发布了js版,其他版本(asp、php版)暂时没有。
代码说明:
其中
qq为您要调用的微博用户名,(注意不是微博名也不是qq号,注意修改后同时修改上面的js调用地址,本代码中shmshz就是用户名)
num为您打算调用的信息条数,(为安全起见暂时只开放10条,设置不要大于10。)
utf-8版与gb2312版合为一个地址,只需在调用前运行一次unescape即可!
JavaScript最简单的调用方式:(一条信息横排)<script src=’http://qq.54bq.com/t/api2?shmshz’ type=’text/javascript’></script>
<SCRIPT LANGUAGE=”JavaScript”>
<!–
document.write(unescape(json.name));
document.write(‘(@’+unescape(json.tqid)+’):’);
document.write(unescape(json.id[0].page));
//其中shmshz为微博账号 0代表第一条 1代表第二条依此类推 //–>
</SCRIPT>