2011-05-20 96 views
2

是否可以使用facebook連接API來獲取一些信息並將其與自定義表單一起使用? 由於Facebook註冊API顯示預填表格,如何獲取這些數據並使用其他表格 謝謝facebook連接API

+0

是的,這是可能的,我在我的網站上。你可以通過圖api:http://graph.facebook.com/userid/name來完成。見http://developers.facebook.com/docs/reference/api/ – AllisonC 2011-05-23 14:11:59

回答

3

您應該使用Facebook PHP SDK(see on github)。這是你將如何做到這一點。

require "facebook.php"; 

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

$user = $facebook->getUser(); 

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

這裏,如果$user不爲空,用戶登錄並已在陣列$user_profile在他的個人數據。

這裏是你可以生成預填充了一些實數據的形式的一個例子:

<?php if ($user): ?> 
    <form action="#" method="get"> 
     <input type="text" name="name" value="<?php echo $user_profile['name'] ?>"> 
     <input type="submit" value="Continue &rarr;"> 
    </form> 
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a> 
<?php else: ?> 
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a> 
<?php endif ?> 

用於在流動更詳細參見the example of the Facebook PHP SDK

+0

謝謝你的想法,但是當我實現它時,改變了appID和te的祕密,它的工作,但像錯誤的東西顯示(警告:session_start() [function.session-start]:無法發送會話cookie - 已在(線路38上的/PATH/TO/SITE/facebook.php中的/PATH/TO/SITE/index.php:2開始處輸出)發送的報頭 – med 2011-05-27 17:03:00

+1

這是因爲你在執行了一些代碼(在你的'index.php',第2行)之後創建了'require'facebook.php''。在完成所有其他事項之前,您應該在流程的開始處放置要求聲明。 – Quentin 2011-05-27 23:34:20

+0

上述代碼僅適用於用戶是否已經授權您的應用程序嗎? – Meir 2011-07-18 12:18:45