我在 twitter 和 sina 都有帐号,用 sina 实在是迫不得已,原因大家都知道了吧。我在想要是没有所谓的”墙”,国内一些 IT 公司还能活吗?我甚至怀疑,国内的 IT 公司是不是帮凶,或是始作俑者!

两个帐号或是多个帐号怎么同步呢?一个个发累死了,follow5 有同步功能,这也是它的卖点,但是都要提供用户名和密码,为什么不申请 twitter Connections applications 呢?让人费解。谁都号称自己不作恶,但谁放心呢!特别是这些还在测试中的网站。

twitter 和 sina 都有提供 api ,sina 的 api 基本跟 twitter 是一样的。

twitter API 文档

新浪微博 API 文档

请求信息之类的就简单了,这里不说,看着文档自己测试吧。新浪微博 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

  • imx365ster

    如果是用perl,不知道可以吗?

Leave a Reply