我的小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可以为我工作,所以如果有人可以提供帮助,那将是非常好的,而不是提前!
答案 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注册的域名与您正在使用的开发者网站是否相同?可能是,但如果你不注意那个人会得到你。让我第一次参与迁移:]