最近做一个网站连接人人网。api文档在人人网的人人应用“开发者”中有。
有具体步骤和example。
但还是遇到了几个api上解决不了的问题。
获得人人网用户数据分这几个步骤
1.跳转这个登入页面 https://graph.renren.com/oauth/authorize? client_id=YOUR_API_KEY&redirect_uri=YOUR_CALLBACK_URL&response_type=code&scope=read_user_album+read_user_feed
redirect_uri是用户登入后的返回的页面,也就是你的网页。
如果用户同意授权(点击连接),应用将会被授权。人人OAuth2.0会将用户的浏览器重定向(通过HTTP 302)到redirect_uri参数对应的URL上,并在Query中使用'code'参数返回一个Authorization Code。
2.下面的PHP示例代码简要展示了服务端流程,并考虑了CSRF攻击的防范工作:
在用这段代码的时候我在框架上获取不到$token_url 上的数据,当在浏览器中输入 url 可以得到数据
原因是php 获取https 的问题
解决方法直接贴代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$token_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
输出result可以看到得到了用户的access_token
然后就和人人提供的example一样 通过用户的access_token 获取用户数据
$rrObj = new RenrenRestApiService;
$params = array('fields'=>'uid,name,sex,birthday,tinyurl,headurl,mainurl,hometown_location,university_history,email_hash',
'access_token'=>$accesstoken);
$res = $rrObj->rr_post_curl('users.getInfo', $params);
我在框架中new RenrenRestApiService时又遇到了问题,发现 RenrenRestApiService 无法初始话。
打开RenrenRestApiService.class.php 输出 __construct()里的_config 值为空,
原因是 $this->_config通过global $config 得到config.inc.php中的值
在框架中global $config不起作用了,不用框架就可以。原理希望有人能指教我。。
这是我比较傻的做法,直接在__construct里 给$this->_config 赋值就一切ok了
代码如下:
$this->_config->APIURL = 'http://api.renren.com/restserver.do'; //RenRen网的API调用地址,不需要修改
$this->_config->APIKey = '6f5ac1f416c3413394c562a1553aa004'; //你的API Key,请自行申请
$this->_config->SecretKey = 'b90d6181beec42058b1b7ff5b1844437'; //你的API 密钥
$this->_config->APIVersion = '1.0'; //当前API的版本号,不需要修改
$this->_config->decodeFormat = 'json'; //默认的返回格式,根据实际情况修改,支持:json,xml
第一次写博客,感觉思路不是很清晰、、大家见谅,希望能给大家帮助!!