2012-01-22 50 views
1

我想使用Facebook ID來歡迎所有進入我的頁面的Facebook用戶。示例:Facebook用戶ID

Hello * name *, Welcome to my page!

我嘗試將它與PHP SDK一起使用,並將SDK文件複製到我的主機。這是我嘗試使用代碼:

<?php 
require_once 'facebook.php'; 
$facebook = new Facebook(array(
    'appId' =>'1234', 
    'secret' => '12345', 
    'cookie' => true, 
    'domain' => 'http://www.facebook.com/Guides4All.Co.IL/' 
)); 

$session = $facebook->getSession(); 
if (!$session) { 
    //user not logged into facebook 
    $uName = "Guess"; 
} else { 
    try { 
     $user_id = $facebook->getUser(); 
     $tt = "/" . $user_id; 
     $me = $facebook->api($tt); 
     $uName = $me["name"]; 
    } 
    catch (FacebookApiException $e) { 
    } 
} 
echo "Welcome $uName"; 
?> 

螺母我得到了一個錯誤:

Fatal error: Call to undefined method Facebook::getSession() in /*****.php on line 11 

我能做些什麼來解決這個問題?什麼是getSession()現在該做什麼?

+0

您使用的'domain'選項不是真正的域名,而是URL。 BTW,實際上PHP-SDK沒有這樣的配置選項... –

回答

2

那麼,基本上,這是因爲Facebook::getSession()方法不存在。
換句話說$session = $facebook->getSession();就是不行。

當您實例化Facebook對象時,會話已經啓動。

的代碼應該更像在SDK located at GitHub

+0

謝謝你的回答。 所以我試圖改變'$ session = $ facebook-> getSession();''到'$ user = $ facebook-> getUser();' 現在頁面正在工作,但沒有給我facebook用戶名。那是說我「歡迎猜」 ,我想得到:Welcome ** name **! 那麼如何解決這個問題? 謝謝! –

+0

我不知道,因爲您在問題中提供的代碼不起作用。您應該嘗試實施我鏈接的示例,以便您可以查看可用變量以及如何使用它們(包括名稱)。 – Repox

+0

您是否在另一個頁面看到了這個技巧? 像另一個頁面,歡迎那裏的用戶 –

2

發現的例子有一個在新的PHP-SDK沒有方法getSession。您應該使用getUser方法獲取用戶標識。

爲了得到這個工作,你應該首先authenticate user。您可以使用getLoginUrl方法來創建用戶需要訪問的URL以連接到您的應用程序。

您需要閱讀文檔Authentication,PHP-SDK並挖掘examples

+0

謝謝你的回答。 所以我試圖改變'$ session = $ facebook-> getSession();''到'$ user = $ facebook-> getUser();' 現在頁面正在工作,但沒有給我facebook用戶名。那是說我「歡迎猜」 ,我想得到:Welcome ** name **! 那麼如何解決這個問題? 謝謝! –

+0

只需獲取用戶標識而不是調用graph.facebook.com,它將返回JSON名稱 – Hadrian

+0

@Tomer,我已更新我的答案以提供更多詳細信息 –

0
$facebook = new Facebook(…); 
$user = $facebook->getUser(); 
if ($user) { 
    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; 
    } 
} 

// $ user_profile獲取有關該用戶的所有信息。然後打印出你想要的數組。

1

這會給你訪問用戶的全名。即使它已被棄用,它也可以工作。

<div id="fb-root"></div> 
<script src="https://connect.facebook.net/en_US/all.js#appId=YOUR_APP_ID&xfbml=1"></script> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'YOUR_APP_ID', 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 
    (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
<fb:serverFbml><script type="text/fbml"><fb:userlink uid="loggedinuser"/></script></fb:serverFbml>