2011-08-25 152 views
4

我正在製作一個Facebook頁面應用程序,我需要從我的用戶獲得一些額外的權限,這會彈出一個很多人被阻止的窗口,我記得看到很多應用程序使用回調url指向授權頁面來處理這個問題。Facebook權限彈出窗口

這是褻瀆嗎?如果不是我如何使用嵌入式頁面而不是彈出?

對不起,如果這聽起來像是一個懶惰的問題,但它已經很長時間了,因爲我已經參與Facebook和他們的API似乎是一個巨大的移動目標,任何提示將不勝感激。

謝謝。

+0

這是一個可行的解決方案的信息,我認爲它有助於對你太:http://facebook.stackoverflow.com/問題/ 6817641/facebook-authentication-implementation/7183892#7183892 –

回答

7

用直的Javascript試試這個小函數。

<script> 
    function addPermissions(permissions){ 
     FB.login(function(response) { 
      if (response.session) { 
       if (response.perms) { 
        // user is logged in and granted some permissions. 

       } else { 
        // user is logged in, but did not grant any permissions 

       } 
      } else { 
       // user is not logged in 
      } 
     }, {perms:permissions}); 
    } 
</script> 
<a onclick="addPermissions("email, publish_stream,...");">Click me</a> 
+0

對不起,打開彈出窗口繞過彈出窗口阻止程序? – Daniel

+0

在大多數情況下,我注意到彈出式窗口攔截器不是問題。所有網站(不使用FBML)都使用此方法獲取權限。 –

+1

99%的彈出窗口攔截器將允許它們在用戶操作引起的情況下打開(即單擊鏈接) – Kevin

0

如果您不在頁面加載時彈出窗口,並對鏈接/按鈕做出響應,請單擊彈出式窗口攔截器不應阻止它,即用戶實際請求Pop彈出窗口。 (我的工作方式是這樣)

您也可以創建相關的授權URL,並將用戶發送到那裏。

最初,您通過對話框或重定向發送它們。 您可以再次發送它們,請求額外的權限(即範圍)。

詳情:

https://developers.facebook.com/docs/authentication/

的對話框中的URL可以彈出到一個新窗口或重定向到它。 通常會使用Javascript API彈出一個新窗口。

0

我相信彈出方法已被棄用。標準方法是用回調重定向到Facebook oauth對話框。對於iframe應用程序,有一種替代的彈出方法,它不是真正的彈出窗口,會被阻止,而更像是一個ajax彈出窗口。

你需要儘可能我曾提到位於對話框的使用在 http://developers.facebook.com/docs/reference/dialogs/oauth/