2011-03-31 42 views
5

現在我正在使用Facebook連接開發移動Web應用程序,但我遇到了OAuth對話框的問題。我用下面的Facebook的文件,供我參考:如何使用OAuth對話框在移動Web應用程序上使用Facebook連接

http://developers.facebook.com/docs/guides/mobile/#web

我選擇使用OAuth對話,而不是登錄按鈕,因爲移動瀏覽器不承認FBML(我用的是黑莓瀏覽器上測試) 。 OAuth對話框還允許我在範圍的參數中添加權限列表。但問題是,當我使用OAuth對話框登錄時,參數$ me未被識別爲,因此登錄按鈕仍然顯示,並且不會更改爲註銷按鈕。 這裏是我的代碼示例:

$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
    'cookie' => true, 
)); 
$session = $facebook->getSession(); 
$me = null; 
// Session based API call. 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
    $accessToken = $facebook->getAccessToken(); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 
if ($me) { 
    echo "<img src=\"images/logoutFB.gif\">"; 
} else { 
    echo "<a href=\"http://www.facebook.com/dialog/oauth?scope=user_about_me,user_activities,user_birthday,user_education_history,user_events,user_groups,user_hometown,user_interests,user_likes&client_id=".$facebook->getAppId()."&redirect_uri=".urlencode("http://MYURL.COM")."&display=wap\"><img src=\"images/loginFB.gif\"></a>"; 
} 

是參數美元,如果我使用OAuth對話框來連接到Facebook的我不能用? 那麼,如果我使用OAuth對話框,我怎麼知道我已經登錄Facebook? 如果你們有解決方案,請幫助。

+1

你沒有打擾的信息框點擊幫助按鈕,以獲得有關如何格式化SO職位信息? – 2011-08-25 17:22:08

回答

2

看起來你需要使用the updated PHP-SDK

getSession()已取代getUser()

require './src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '135669679827333', 
    'secret' => 'xxxxxxxxxxxxxxxx', 
)); 
$user = $facebook->getUser(); 
if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 

    $user = null; 
    } 
} 
相關問題