Facebook用户ID

时间:2012-01-22 20:57:06

标签: php facebook sdk

我想使用Facebook ID欢迎所有进入我页面的Facebook用户。示例:

  

您好 * name * ,欢迎来到我的页面!

我尝试将它与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";
?>

Nut我收到了一个错误:

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

我该怎么做才能解决这个问题?什么是getSession()以及现在该做什么?

4 个答案:

答案 0 :(得分:2)

嗯,基本上,这是因为Facebook::getSession()方法不存在 换句话说,$session = $facebook->getSession();只是行不通。

当您实例化Facebook对象时,会话已经启动。

代码应该更像SDK located at GitHub

中的示例

答案 1 :(得分:2)

新的PHP-SDK中没有方法getSession。您应该使用getUser方法来获取用户ID。

要实现这一目标,您应该先authenticate user。您可以使用getLoginUrl方法创建用户需要访问的URL以连接您的应用程序。

您需要阅读AuthenticationPHP-SDK的文档并挖掘examples

答案 2 :(得分: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>

答案 3 :(得分: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获取有关该用户的所有信息。然后在该数组中打印您想要的内容。