我在 twitter 和 sina 都有帐号,用 sina 实在是迫不得已,原因大家都知道了吧。我在想要是没有所谓的”墙”,国内一些 IT 公司还能活吗?我甚至怀疑,国内的 IT 公司是不是帮凶,或是始作俑者!
两个帐号或是多个帐号怎么同步呢?一个个发累死了,follow5 有同步功能,这也是它的卖点,但是都要提供用户名和密码,为什么不申请 twitter Connections applications 呢?让人费解。谁都号称自己不作恶,但谁放心呢!特别是这些还在测试中的网站。
twitter 和 sina 都有提供 api ,sina 的 api 基本跟 twitter 是一样的。
请求信息之类的就简单了,这里不说,看着文档自己测试吧。新浪微博 API 文档基本就是 twitter API 文档的中文版,如果不懂英文的就看新浪的文档也能搞出个一二三。
下面分享一段代码,是如何发新微博的。系统要求:php,curl,json支持。
<?php header('Content-type: text/html; charset=utf-8'); /* 所有都是utf-8字符的 */ $d = getApi('http://twitter.com/users/show/wangblog.json'); /* wangblog的用户信息 */ //$d = getApi('http://twitter.com/statuses/friends_timeline.json', 'user:pass'); /* wangblog的所有Following用户的最新信息 */ //$d = getApi('http://twitter.com/statuses/update.json', 'user:pass', 'status='.urlencode('test twitter\'s api.')); /* 发表微博给twitter */ //$d = getApi('http://api.t.sina.com.cn/statuses/update.json', 'user:pass', 'source=2924220432&status='.urlencode('test sina\'s api.')); /* 发表微博给sina,其中 source 是用的分享按钮的 */ function getApi($url, $userpass=null, $data=null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); if($userpass){ curl_setopt($curl, CURLOPT_USERPWD, $userpass); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HEADER, 0); if($data){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_URL, $url); $cdata = curl_exec($curl); $cheaders = curl_getinfo($curl); if(200 == $cheaders['http_code']){ return $cdata; }else{ print_r($cheaders); exit; } } print_r(json_decode($d)); ?>
Facebook 就直接安装这个应用程序 http://www.facebook.com/apps/application.php?id=2231777543 同步 twitter 到涂鸦墙即可。
One Comment
如果是用perl,不知道可以吗?