Facebook require_login不起作用

时间:2010-06-08 18:29:53

标签: php facebook facebook-graph-api

我的小Facebook应用程序遇到了一些麻烦,我一直得到这个friggin错误,“致命的错误:调用未定义的方法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 USER应用程序,但由于某种原因,这个REFUSES可以为我工作,所以如果有人可以提供帮助,那将是非常好的,而不是提前!

4 个答案:

答案 0 :(得分:9)

您使用的是newest version of the PHP sdk吗?

Facebook::require_login()是旧SDK中的一种方法。

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

要求登录的概念甚至不再存在 - 您只需获取用户的ID即可。

$user_id = $facebook->getUser();

答案 1 :(得分: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']

答案 2 :(得分:0)

一个明显的答案,但是,您是否在Facebook域上注册了您的应用程序。 如果您注册了xxxyy.com,则只能在那里使用您的应用程序。

答案 3 :(得分:0)

您是否可以仔细检查您在facebook注册的域名与您正在使用的开发者网站是否相同?可能是,但如果你不注意那个人会得到你。让我第一次参与迁移:]