2011-11-18 20 views
0

我遇到了一個問題,我的應用正在重新調整,一旦我去了我的應用,它肯定會顯示一個登錄頁面,而不是允許頁面?如何避免我的這個Facebook應用程序api登錄頁面?

它總是顯示登錄頁面的第一次那麼只允許顯示頁面,我試過其他應用程序,如果我是第1次的用戶,它肯定會出現在頁面允許只,它並沒有告訴我的登錄頁面。

我的問題是,如何避免我我的登錄頁面直接轉到頁允許?

這裏是我的登錄頁面的圖片 enter image description here

這裏是我的應用程序鏈接

https://apps.facebook.com/christmas_testing/

這裏是我的Facebook的PHP JDK的API編碼

<?php 
$fbconfig['appid' ] = "XXXXXXXXXXXXX"; 
$fbconfig['secret'] = "XXXXXXXXXXXXX"; 
$fbconfig['baseUrl'] = "myserverlink"; 
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/christmas_testing/"; 

if (isset($_GET['code'])){ 
    header("Location: " . $fbconfig['appBaseUrl']); 
    exit; 
} 
if (isset($_GET['request_ids'])){ 
    //user comes from invitation 
    //track them if you need 
    header("Location: " . $fbconfig['appBaseUrl']); 
} 

$user = null; //facebook user uid 
try{ 
    include_once "facebook.php"; 
} 
catch(Exception $o){ 
    echo '<pre>'; 
    print_r($o); 
    echo '</pre>'; 
} 
// Create our Application instance. 
$facebook = new Facebook(array(
    'appId' => $fbconfig['appid'], 
    'secret' => $fbconfig['secret'], 
    'cookie' => true, 
)); 

//Facebook Authentication part 
$user = $facebook->getUser(); 

$loginUrl = $facebook->getLoginUrl(
     array(
      'scope' => 'email,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown' 
     ) 
); 
if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    //you should use error_log($e); instead of printing the info on browser 
    d($e); // d is a debug function defined at the end of this file 
    $user = null; 
    } 
} 

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

//get user basic description 
$userInfo = $facebook->api("/$user"); 

function d($d){ 
    echo '<pre>'; 
    print_r($d); 
    echo '</pre>'; 
} 

?>

回答

1

這是功能Facebook最近推出了new auth dialog的效果。

有兩個 「允許/登錄」 屏幕使用這個新的對話框時:

  • 普通權限,例如 - user_about_me,user_birthday,user_photos。
  • 擴展權限,例如 - read_insights,offline_access,publish_actions。

每個將顯示其自己的對話框。首先會出現常規權限,之後將顯示擴展權限(如果您已請求擴展權限)...用戶第一次登錄時會發生這種情況,如果您想要爲您的應用添加其他權限,則可能會稍後再發生。

Open Graph Beta › Auth Dialog

採取的更新驗證對話框將顯示第一對話的一組用戶和朋友的權限和其他擴展權限(如果有的話)的第二對話屏幕上。

可以禁用此功能,並通過更改應用內的設置回到舊的身份驗證對話框。轉到應用程序設置中的高級選項卡,並取消選中Enhanced Auth Dialog複選框。

+0

hi lix,所以它無法避免這個新的auth對話框?感謝您的幫助 – Oscar

+0

是的,您可以 - 通過在您的應用程序設置中禁用它。轉到https:// developers.facebook.com/apps/181340765286920/advanced'並取消選中「增強的身份驗證對話框」複選框。 – Lix

+0

萬分感謝求助 – Oscar

-1

在範圍參數上添加'offline_access'權限。藉此,即使用戶處於脫機狀態,用戶也可以授予應用程序權限。您將獲得的access_token是非到期的。

+0

我不認爲這個答案有什麼用他的問題。 – Lix

相關問題