2012-10-04 26 views
0

我正在测试一个cURL函数来获取Foursquare上给定用户的访问令牌。以下功能以json格式在屏幕上打印访问令牌从PHP的cURL请求获得Foursquare的access_token

{"access_token":"5B25GW5LF3L4W04PALHK32X5Z3YGNUUVDHM2TFBQOWZSQ121"} 

我在提取访问令牌的值时遇到问题。

这功能我使用:

功能get_access_token($代码){

 $url = "https://foursquare.com/oauth2/access_token"; 

     $fields = array(
      'client_id' => urlencode($this->client_id), 
      'client_secret' => urlencode($this->client_secret), 
      'grant_type' => 'authorization_code', 
      'redirect_uri' => urlencode($this->redirect_url), 
      'code' => $code 
     ); 

     //url-ify the data for the POST 
     foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
     rtrim($fields_string, '&'); 

     //open connection 
     $ch = curl_init(); 

     //set the url, number of POST vars, POST data 
     curl_setopt($ch,CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_POST, count($fields)); 
     curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

     //execute post 
     $result = curl_exec($ch); 
     //close connection 
     curl_close($ch); 

     return var_dump($result) /* prints bool(true) */; 
    } 

如何我此访问令牌存储在一个变量?

谢谢

回答

0

只需添加一行代码告诉卷曲传递的返回值回curl_exec和你的$结果变量:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

您可能还需要检查是否发生错误时,数据来源返回:例如:

$result = curl_exec($ch); 
if (curl_errno($ch)) 
    echo (curl_error($ch)); 
else 
    echo $result; 
curl_close($ch);