2010-06-08 18 views
9

我有一些麻烦,我的小facebook应用程序,我不断收到这个friggin错误,“致命的错误:调用未定义的方法Facebook :: require_login()”,现在有趣的是,我的确切相同代码正在为其他人工作,但不适合我,这里是代码。Facebook的require_login不工作

<?php 
require_once("facebook-php-sdk/src/facebook.php"); 
$api_key = "my_api_key"; 
$secret = "my_secret_key"; 

$facebook = new Facebook($api_key, $secret); 
$user_id = $facebook->require_login(); 

echo "Hello World"; 
echo "Current logged in as <fb:name uid=\"$user_id\" />"; 
?> 

正如你可以看到它是一个简单的Hello用户应用程序,但由于某些原因,这拒绝为我工作,所以如果有人可以帮忙,这将是巨大的,thanx提前!

+1

检查你的facebook.php文件,看看是否定义了该方法。另外,你确定你使用的是最新版本的SDK吗? – ircmaxell 2010-06-08 18:32:47

+0

是的,我确定,我现在再次下载它只是为了确定,但它仍然不会工作! – Odyss3us 2010-06-08 19:28:41

回答

9

您是使用newest version of the PHP sdk

Facebook::require_login()是一个来自旧SDK的方法。

新的SDK(与Graph API一起发布)不向后兼容。

需要登录的概念已经不再存在 - 您只需获取用户标识即可。

$user_id = $facebook->getUser(); 
+0

奇怪的是,我先试了一下,并且发现了一个非常类似的错误! 现在它似乎工作,但我没有得到错误了,这是我所看到的,“你好世界当前登录为Facebook用户”,它不是打印人名,我也试图得到他的用户名,但我认为这也是我没有看到名字的原因,因为它需要用户名来获取用户名。 – Odyss3us 2010-06-08 19:46:28

0

尝试这个功能:


function appInstance($fbconfig){ 
    try{ 
     include_once "facebook.php"; 
    } 
    catch(Exception $o){ 
     echo '<pre>'; 
     print_r($o); 
     echo '</pre>'; 
    } 
    $facebook = new Facebook(array(
     'appId' => $fbconfig['appid'], 
     'secret' => $fbconfig['secret'], 
     'cookie' => true, 
    )); 
    $session = $facebook->getSession(); 
    $fbme = null; 
    // Session based graph API call. 
    if ($session) { 
     try { 
     $uid = $facebook->getUser(); 
     $fbme = $facebook->api('/me'); 
     } catch (FacebookApiException $e) { 
      //d($e); //debug 
      'Facebook took too long to respond, try again in a few minutes.'; 
     } 
    } 
    return $uid; 
    return $fbme; 
    return $facebook; 
}//end appInstance() 

您拨打电话后,该功能使用$ fbme拉你从你的烫发有像这样$firstName=$fbme['first_name']$email=$fbme['email']任何信息。

0

一个明目张胆的答案,然而,你是在​​你注册你的应用程序在Facebook上的网域。 如果您注册了xxxyy.com,则只能在那里使用您的应用程序。

0

您是否也许仔细检查了您在Facebook上注册的域名与您正在开发的开发站点是否相同?可能是,但如果你不注意,那个人会得到你。让我第一次围绕迁移:]