php下用curl做的一个更新人人网状态的代码

2010-07-10 11:20 by hackerzhou

20100821最新更新:豆瓣/人人/BBS/开心/嘀咕/网易微博/新浪微博状态更新PHP代码终结版


参考了网上别人的实现,发现若干bug,自己重新写了下。发现人人网还真是猥琐,经常改变接口以及post的参数,广告么又一大堆,没有开心网清爽,要不是看在有那么多同学都用的份上我早就不用了。。。 代码还可以在诸如wp-to-twitter之类的博客->twitter的插件中使用,这样就能同时更新到renren以及twitter了。 curl还算是比较简单而且功能强大,熟悉了之后可以用来做很多东西。

<?php
function updateRenRen($item) {
   	$renren_username='人人网登录用户名';
   	$renren_password='人人网登录密码';
   	$cookie_jar = tempnam('./tmp','cookie');

   	$ch = curl_init();
   	curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_jar);
   	curl_setopt($ch,CURLOPT_URL,"http://passport.renren.com/PLogin.do");
   	curl_setopt($ch,CURLOPT_POST,TRUE);
   	curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);
   	curl_setopt($ch,CURLOPT_POSTFIELDS,'email='.urlencode($renren_username).'&password='.urlencode($renren_password).'&autoLogin=true&origURL=http%3A%2F%2Fwww.renren.com%2FHome.do&domain=renren.com');
   	curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
   	$str = curl_exec($ch);
   	$pattern = "/get_check:'([^']+)'/";
   	preg_match($pattern,$str,$matches);
   	$get_check = $matches[1];
   	curl_close($ch);

   	$ch1 = curl_init();
   	curl_setopt($ch1,CURLOPT_URL,"http://status.renren.com/doing/update.do");
   	curl_setopt($ch1,CURLOPT_COOKIEFILE,$cookie_jar);
   	curl_setopt($ch1,CURLOPT_POST,TRUE);
   	curl_setopt($ch1,CURLOPT_POSTFIELDS,'c='.urlencode($item).'&raw='.urlencode($item).'&isAtHome=1&publisher_form_ticket='.$get_check.'&requestToken='.$get_check);
   	curl_setopt($ch1,CURLOPT_FOLLOWLOCATION,TRUE);
   	curl_setopt($ch1,CURLOPT_REFERER,'http://status.renren.com/ajaxproxy.htm');
   	curl_setopt($ch1,CURLOPT_RETURNTRANSFER,TRUE);

   	$ret = curl_exec($ch1);
   	curl_close($ch1);
   	$ret = json_decode($ret,TRUE);
   	echo $ret['msg']."\n";
}

updateRenRen("test php update renren status.");
?>
本文基于 署名 2.5 中国大陆 许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 hackerzhou 并包含 原文链接
发表评论

本文有 2 条评论

  1. hackerzhou
    2010-08-21 09:53


    nestcut:

    朋友,这个现在是不是已 经不行了,我刚试了下,不成功啊

    请看我今天发布的最终版:豆瓣/人人/BBS/开心/嘀咕/网易微博/新浪微博状态更新PHP代码终结版

  2. nestcut
    2010-08-20 03:16

    朋友,这个现在是不是已 经不行了,我刚试了下,不成功啊

发表评论