2011-05-28 15 views
1

我有我自己的PHP應用程序有限制的一部分,只有經過身份驗證的用戶使用。按照說明from我確實設法創建了FB應用程序並啓用了用於FB登錄的電子郵件登錄。Facebook連接和自定義PHP應用程序的身份驗證

好的,但是,接下來該做什麼,以及如何加入我的web應用程序和FB登錄應用程序系統?我想,不知何故,我必須從Facebook應用程序獲取信息,並......做什麼?

你可以給我一些想法如何完成這一個?先謝謝你!

+0

(如果你的數據庫中有一個用戶表,那麼使用從那裏獲取的電子郵件地址作爲用戶名,然後對所有你的fb用戶使用相同的密碼)和安全) – 2011-05-28 10:36:43

回答

0

您遵循的教程實現了客戶端流程。這意味着每件事都是在用戶的瀏覽器中完成的,並且您的Web應用程序無法從Facebook輕鬆檢索(輕鬆)一些數據。

您必須實現服務器端流程。一個簡單易行的方法是使用Facebook PHP SDK(see on github)。所以,你會碰到這樣的:如果用戶登錄

require "facebook.php"; 
$facebook = new Facebook(array(
    'appId' => YOUR_APP_ID, 
    'secret' => YOUR_APP_SECRET, 
)); 

$user = $facebook->getUser(); 

,然後$user是他的Facebook ID。然後,您可以通過進行API調用來檢查,如果你有一個有效的訪問令牌:

  • 如果不提高任何異常,那麼你有一個有效的訪問令牌

  • 如果是這樣的話,你必須重新認證用戶。

這裏:

if ($user) { 
    try { 
    $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    $user = null; 
    } 
} 

你需要再顯示登錄或註銷鏈接:

<?php if ($user): ?> 
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a> 
<?php else: ?> 
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a> 
<?php endif ?> 

當用戶登錄,你有一個有效的訪問令牌,你可以使API調用以從Facebook獲取數據:

$user_profile = $facebook->api('/me'); 

您可能需要檢查有記錄的example page of the Facebook PHP SDK

希望有所幫助。

+0

你能否請更新您的答案中的鏈接。他們現在已經死了。 – 2013-12-16 19:24:39

+0

肯定Gaurav,在這裏:) – Quentin 2013-12-17 09:37:55

相關問題