2010-06-08 15 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上註冊的域名與您正在開發的開發站點是否相同?可能是,但如果你不注意,那個人會得到你。讓我第一次圍繞遷移:]