×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: Jing Tai Piao
Added: Apr 18, 2013 4:20 AM
Views: 32
Tags: no tags
  1.  
  2. [文件] renren.php
  3. 001     <?php
  4. 002     /**
  5. 003     * PHP Library for renren.com
  6. 004     *
  7. 005     * @author PiscDong (http://www.piscdong.com/ www.php100.com)
  8. 006     */
  9. 007     class renrenPHP
  10. 008     {
  11. 009     function __construct($client_id, $client_secret, $access_token=NULL){
  12. 010     $this->client_id=$client_id;
  13. 011     $this->client_secret=$client_secret;
  14. 012     $this->access_token=$access_token;
  15. 013     }
  16. 014      
  17. 015     function login_url($callback_url, $scope=''){
  18. 016     $params=array(
  19. 017     'response_type'=>'code',
  20. 018     'client_id'=>$this->client_id,
  21. 019     'redirect_uri'=>$callback_url,
  22. 020     'scope'=>$scope
  23. 021     );
  24. 022     return 'https://graph.renren.com/oauth/authorize?'.http_build_query($params);
  25. 023     }
  26. 024      
  27. 025     function access_token($callback_url, $code){
  28. 026     $params=array(
  29. 027     'grant_type'=>'authorization_code',
  30. 028     'code'=>$code,
  31. 029     'client_id'=>$this->client_id,
  32. 030     'client_secret'=>$this->client_secret,
  33. 031     'redirect_uri'=>$callback_url
  34. 032     );
  35. 033     $url='https://graph.renren.com/oauth/token';
  36. 034     return $this->http($url, http_build_query($params), 'POST');
  37. 035     }
  38. 036      
  39. 037     function access_token_refresh($refresh_token){
  40. 038     $params=array(
  41. 039     'grant_type'=>'refresh_token',
  42. 040     'refresh_token'=>$refresh_token,
  43. 041     'client_id'=>$this->client_id,
  44. 042     'client_secret'=>$this->client_secret
  45. 043     );
  46. 044     $url='https://graph.renren.com/oauth/token';
  47. 045     return $this->http($url, http_build_query($params), 'POST');
  48. 046     }
  49. 047      
  50. 048     function me(){
  51. 049     $params=array();
  52. 050     return $this->api('users.getInfo', $params, 'POST');
  53. 051     }
  54. 052      
  55. 053     function setStatus($status){
  56. 054     $params=array(
  57. 055     'status'=>$status
  58. 056     );
  59. 057     return $this->api('status.set', $params, 'POST');
  60. 058     }
  61. 059      
  62. 060     function getStatus($uid, $count=10, $page=1){
  63. 061     $params=array(
  64. 062     'uid'=>$uid,
  65. 063     'page'=>$page,
  66. 064     'count'=>$count
  67. 065     );
  68. 066     return $this->api('status.gets', $params, 'POST');
  69. 067     }
  70. 068      
  71. 069     function addBlog($title, $content){
  72. 070     $params=array(
  73. 071     'title'=>$title,
  74. 072     'content'=>$content
  75. 073     );
  76. 074     return $this->api('blog.addBlog', $params, 'POST');
  77. 075     }
  78. 076      
  79. 077     function getBlog($id, $uid){
  80. 078     $params=array(
  81. 079     'id'=>$id,
  82. 080     'uid'=>$uid
  83. 081     );
  84. 082     return $this->api('blog.get', $params, 'POST');
  85. 083     }
  86. 084      
  87. 085     function getComments($id, $uid, $count=10, $page=1){
  88. 086     $params=array(
  89. 087     'id'=>$id,
  90. 088     'uid'=>$uid,
  91. 089     'page'=>$page,
  92. 090     'count'=>$count
  93. 091     );
  94. 092     return $this->api('blog.getComments', $params, 'POST');
  95. 093     }
  96. 094      
  97. 095     function api($method_name, $params, $method='GET'){
  98. 096     $params['method']=$method_name;
  99. 097     $params['v']='1.0';
  100. 098     $params['access_token']=$this->access_token;
  101. 099     $params['format']='json';
  102. 100     ksort($params);
  103. 101     $sig_str='';
  104. 102     foreach($params as $k=>$v)$sig_str.=$k.'='.$v;
  105. 103     $sig_str.=$this->client_secret;
  106. 104     $sig=md5($sig_str);
  107. 105     $params['sig']=$sig;
  108. 106     $url='http://api.renren.com/restserver.do';
  109. 107     if($method=='GET'){
  110. 108     $result=$this->http($url.'?'.http_build_query($params));
  111. 109     }else{
  112. 110     $result=$this->http($url, http_build_query($params), 'POST');
  113. 111     }
  114. 112     return $result;
  115. 113     }
  116. 114      
  117. 115     function http($url, $postfields='', $method='GET', $headers=array()){
  118. 116     $ci=curl_init();
  119. 117     curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE);
  120. 118     curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
  121. 119     curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
  122. 120     curl_setopt($ci, CURLOPT_TIMEOUT, 30);
  123. 121     if($method=='POST'){
  124. 122     curl_setopt($ci, CURLOPT_POST, TRUE);
  125. 123     if($postfields!='')curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
  126. 124     }
  127. 125     $headers[]="User-Agent: renrenPHP(piscdong.com)";
  128. 126     curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
  129. 127     curl_setopt($ci, CURLOPT_URL, $url);
  130. 128     $response=curl_exec($ci);
  131. 129     curl_close($ci);
  132. 130     $json_r=array();
  133. 131     if($response!='')$json_r=json_decode($response, true);
  134. 132     return $json_r;
  135. 133     }
  136. 134     }
  137. [文件] config.php
  138.  
  139. 1       <?php
  140. 2       //配置文件
  141. 3       header('Content-Type: text/html; charset=UTF-8');
  142. 4        
  143. 5       $renren_k=''; //人人网应用API Key
  144. 6       $renren_s=''; //人人网应用Secret Key
  145. 7       $callback_url='http://yoururl/callback.php'; //授权回调网址
  146. 8       $scope='publish_blog read_user_blog'; //权限列表,具体权限请查看官方的api文档
  147. 9       ?>
  148. [文件] index.php
  149.  
  150. 01      <?php
  151. 02      session_start();
  152. 03      require_once('config.php');
  153. 04      require_once('renren.php');
  154. 05      
  155. 06      $renren_t=isset($_SESSION['renren_t'])?$_SESSION['renren_t']:'';
  156. 07      $renren_id=isset($_SESSION['renren_id'])?$_SESSION['renren_id']:'';
  157. 08      
  158. 09      //检查是否已登录
  159. 10      if($renren_t!='' || $renren_id!=''){
  160. 11      $renren=new renrenPHP($renren_k, $renren_s, $renren_t);
  161. 12      
  162. 13      //获取登录用户信息
  163. 14      $result=$renren->me();
  164. 15      var_dump($result);
  165. 16      
  166. 17      /**
  167. 18      //access token到期后使用refresh token刷新access token