2010-06-08 88 views
1

我正在開發一個在PHP和FBML的Facebook畫布應用程序的開發過程,並且在設置應用程序的授權時遇到問題。我基本不知道如何去做,或者最好的方法是什麼。Facebook的畫布應用程序-php身份驗證問題

我一直在互聯網上搜索大部分的一天,但要麼沉迷於舊API的東西,要麼我不知道如何實現他們正在解釋的東西。

這裏是我有:

$facebook = new Facebook(array(
    'appId' => '*snip*', 
    'secret' => '*snip*', 
    'cookie' => true,)); 

$session = $facebook->getSession(); 

$fbme = null; 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $fbme = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
     d($e); 
    } 
} 

if (!$fbme) { 
    $loginUrl = $facebook->getLoginUrl(array(
       'canvas' => 1, 
       'fbconnect' => 0, 
     'req_perms' => "publish_stream,user_birthday,friends_birthday,user_events,user_hometown,friends_hometown,user_location,friends_location,offline_access," 
      ));; 
} 

if (isset($loginUrl)) { 
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
    exit; 
} 

但是,什麼也不做,如果我改變了頭,而不是使用腳本塊嘗試,我得到:

網址...是無效的

我是否去這一切都錯了?

在此先感謝您的幫助。

安迪

+0

請輸入完整的錯誤信息。 是否有一行例如28或更多,以便您/我們更容易地看到幾乎是您的錯誤? – 2010-06-08 18:50:50

回答

1

我的共同包括具有用於驗證以下內容:

$facebook = new Facebook(array(
    'appId' => $ini['appid'], 
    'secret' => $ini['appsecret'], 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$fbme = null; 
if ($session) { 
    try { 
     $fbme = $facebook->api('/me'); 
    } 
    catch (FacebookApiException $e) { 
     error_log($e); 
    } 
} 

// new login check 
if (!$fbme) { 
    $loginUrl = $facebook->getLoginUrl(array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'req_perms' => 'email', 
     'next' => FB_APP_URL, 
     'cancel_url' => FB_APP_URL, 
    )); 
    echo '<fb:redirect url="' . $loginUrl . '" />'; 
} 

,基本上示出了消息的使用任一添加應用程序或離開提示;如果他們已經通過驗證,那麼只需繼續進行什麼是beyong if (!$fbme)塊。

+0

嘿馬丁,我在$ fbme = $ facebook-> api('/ me');我正在使用最新的php-sdk。 – RubyDubee 2010-07-23 19:42:42

+0

你有什麼異常? – 2010-07-24 09:20:59