2010-10-23 27 views
1

我想在PHP腳本(id和名稱)中獲取有關用戶的一些基本信息。圖形API:如何抓取當前用戶的信息?

我曾嘗試以下方法:

$retrieve = curl_init("https://graph.facebook.com/me?access_token=$accesstoken"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($retrieve, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$data = curl_exec($retrieve); 
curl_close($retrieve); 

$user = json_decode(file_get_contents(
     "https://graph.facebook.com/me?access_token=$accesstoken"))->me; 

捲曲方法(前)只是超時。 file_get_contents(後者)方法根本不返回任何東西...

什麼可能導致這種情況?我正確使用cURL嗎?

+0

你檢查一下file_get_contents()函數返回的信息沒有json_decode()調用和 - > me操作符? – 2010-10-23 23:10:40

+0

爲什麼不使用Facebook PHP SDK來做到這一點? http://github.com/facebook/php-sdk – 2010-10-23 23:10:49

+0

@Eran:是的,它根本沒有任何回報。這完全是空的。 @Nathan:我現在沒有使用SDK,我需要先手動執行此操作。我不明白爲什麼這不起作用... – 2010-10-23 23:18:11

回答

-1

Facebook不會讓你使用捲曲。他們有這個api。

複製你的鏈接並粘貼到瀏覽器。它會工作。在Mozilla中,您將在瀏覽器中看到結果,IE會將結果保存爲文件。所以它不是關於無效的訪問令牌等。這僅僅是因爲Facebook不響應您的查詢,當它不從來自Facebook的API的Web瀏覽器2發出時。

這裏是對Facebook的相關PHP調用。

$attachment = array('access_token' => $access_token); 
$result=$facebook->api('/me', 'GET', $attachment); 
$id = $result['id']; 
$name=$result['name']; 
+0

好運,試圖瞭解Facebook如何使用curl那裏。他們有一千種不同的機制。 – cuneyt 2011-01-30 18:11:44

1

的圖形API,你可以使用圖形API方法rahter比捲曲 下面的代碼抓住當前用戶

 
define('FACEBOOK_APP_ID', 'Your API ID'); 
define('FACEBOOK_SECRET', 'YOUR SECRET'); 
function get_facebook_cookie($app_id, $application_secret) 
{ 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) 
    { 
     if ($key != 'sig') 
     { 
      $payload .= $key . '=' . $value; 
     } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) 
    { 
     return null; 
    } 
    return $args; 
} 
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 
$user=json_decode(file_get_contents('https://graph.facebook.com/me?access_token='.$cookie['access_token'])); 

其prettey容易