2012-02-13 61 views
0

我試圖讓登錄的當前用戶的Facebook的ID,並使用我的應用程序,以便它可以與其他信息一起被寫入到數據庫中。沒有得到Facebook的用戶ID

我已經測試了無數次爲我自己,它會得到我的ID,並將其寫入到數據庫,但如果我問別人使用它......它不會得到用戶的ID我應用...

我缺少這方面的任何擴展的權限?這是我迄今爲止獲得的用戶ID。

謝謝。

<?php include ('includes/php/facebook.php'); ?> 

<?php 

$facebook = new Facebook(array(
    'appId' => 'XXXXXXXXXXXXXXXXX', 
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
)); 

?> 

<?php 

    $user = $facebook->getUser(); 
    $userId = $user; 
    //some code here... 
?> 
+0

你在哪裏登錄用戶,並讓他們給予他們的帳戶信息您的應用程序的訪問? – chesles 2012-02-13 22:00:43

+0

不通。我只是得到了用戶的ID ...所以看起來認證是問題...它會解釋它 – 2012-02-13 22:03:30

+0

是的,這是你的問題。查看@ mazzucci的答案或SDK文檔以獲取示例。 – chesles 2012-02-13 22:06:54

回答

0

http://developers.facebook.com/docs/authentication/

默認情況下,系統會要求用戶授權該應用訪問基本 信息可公開或在Facebook上默認。如果 您的應用程序需要的不僅僅是這些基本信息更多的功能,必須從用戶 請求特定的權限。這是通過 添加範圍參數的對話框的OAuth請求隨後逗號 所需的權限的分隔的列表來實現。下面的例子 演示如何要求獲得用戶的電子郵件地址和他們的新聞 飼料:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream 
1

如果$用戶ID爲0或空的,這意味着用戶沒有通過驗證。

// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me/accounts'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(array("domain" => 'www.myurl.com')); 
} else { 
    $loginUrl = $facebook->getLoginUrl(array("scope" => 'publish_stream,offline_access,manage_pages')); 
} 

您可以從http://developers.facebook.com/docs/reference/php/

它包含幾個例子下載SDK。

相關問題