我在 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,不知道可以吗?