2011-11-18 89 views
2

我認爲這是因爲用戶必須授予某種對我的Facebook應用程序的訪問權限,getUser才能提供給我?這裏是我的代碼:facebook-> getUser()返回0

<? require 'facebook.php'; ?> 
<?php 

$facebook = new Facebook(array(
'appId' => '[//fb app id]', 
'secret' => '[//fb app secret]', 
'cookie' => true 
)); 

$uid = $facebook->getUser(); 
echo $uid; 

?> 

所以我想我的問題是,短提示用戶授予權限,以我的應用程序,有沒有任何其他類型的唯一標識符的,我可以從一個FB用戶抓住,以防止他們從提交超過1項到我的應用程序。我有用戶的添加提交,但我只想讓每個用戶提交一次。謝謝您的幫助!

回答

3

要獲得用戶ID,用戶必須授予權限

if($uid){ 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 

    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
}else{ 
    $loginUrl = $facebook->getLoginUrl(); 
    echo("<br>login url=".$loginUrl); 
}; 

用戶授予權限後(見loginUrl),您可以訪問用戶ID

+1

在catch塊應該是'$ UID = null;' – ifaour

+0

你是什麼意思,他將不得不授予許可?實際上,當您添加以下內容時,請參閱更新 –

+0

:header('Location:'。$ loginUrl);然後點擊去應用程序,然後它回去...與一個長的網址,與獲得變量代碼..但我不想發送用戶頭。:(, –