2011-10-21 163 views
2

我使用OAuth對話框獲取Facebook訪問用戶的電子郵件,生日和其他詳細信息的權限,但是當我運行此應用的URL爲https://apps.facebook.com/projectatestapp/(同時登錄Facebook)時,我看到此登錄到應用程序窗口,其中說:Facebook權限對話框(JavaScript sdk)

您正在以Nina Sewart的身份登錄到testapp。登錄不會將此應用的活動添加到Facebook。

隨着日誌和取消按鈕instead of Permission window with Allow and Don't Allow button

這裏是我的代碼

<html xmlns:fb="https://www.facebook.com/2008/fbml"> 
<body> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <div id="fb-root"></div> 
    <script> 
     FB.init({ 
      appId: '[My app id]', 
      xfbml: true, 
      cookie: true, 
      oauth: true 
     }); 

     FB.login({ 
      scope: 'email,user_birthday', 
     }); 
    </script> 

    <a href="https://www.facebook.com/dialog/oauth/?scope=email, 
     user_birthday& 
     client_id=148244388606048& 
     redirect_uri=https://apps.facebook.com/projectatestapp/test2.html& 
     response_type=token" target="_top">test</a> 
</body> 
</html> 

請告訴我,什麼是錯的呢?

回答

1

你沒有看到它的原因是因爲申請過程已經成爲一個兩步過程。

  1. 被人接受登錄到您的應用程序。
  2. 正在接受您的擴展權限,這是回調URL進入的地方。

可以找到文檔here

所以你的回調沒有被調用的原因是因爲這兩個步驟的過程。我建議將響應附加到所調用的第二頁。

我不確定JS SDK是如何工作的,但它是我如何做到的。

Goodluck。

+1

o謝謝..你解決了我的神祕屏幕。 ... – user1006567

0

您需要在調用自動​​化窗口之前將fb標記添加到url以標識您的用戶爲fb。

我想試試這個來獲取令牌:FB.getAccessToken();

+0

通過使用response.authResponse.accessToken;允許/不允許窗口是沒有更多..我看到的是:當我打網址,我看到一個新的窗口說**奈達testapp需要: 您的電子郵件地址(nidaalikhawaja @ hotmail。com) 您的生日 登錄不會將此應用程序的活動添加到Facebook。**以及登錄和取消按鈕...有沒有可能Facebook已更改允許和不允許窗口? – user1006567

+0

我在這裏有同樣的問題:http://facebook.stackoverflow.com/questions/7847029/fb-ui-permissions-request-issue-in-new-oauth-window – MLKiiwy

0

我在這裏有同樣的問題。該文件說只有這個應用程序的開發人員/測試人員才能獲得發佈權限,但我可以設法使其僅與用於創建應用程序的ID一起工作。其他測試用戶(即使是授權開發人員)也無法超越'加入時間表'階段。

這可能是一個主要的錯誤。

0

我在這個問題上苦苦掙扎了好幾個小時,我的可愛同事幫助我解決了這個問題。確保您在登錄後不刷新頁面。基本上,不要做如下的事情:

FB.login(...); 
window.location.refresh(); 

在FB.login的回調中包含刷新代碼!

男人,我覺得很愚蠢,但有時你會感到困惑,忘記了代碼執行順序中的回調是如何工作的。