我正在開發Facebook應用程序作爲頁面選項卡應用程序。我想在用戶通過粉絲頁面訪問應用程序之前顯示OAuth對話框。我怎樣才能做到這一點?如何爲通過粉絲頁面選項卡訪問的Facebook應用程序顯示OAuth對話框?
對於畫布應用程序,當從應用程序設置(增強型身份驗證對話框)啓用OAuth對話框時,將通過apps.facebook.com/myapp
訪問應用程序時顯示OAuth對話框。但當我使用頁面標籤訪問相同的應用程序添加到粉絲頁面中,OAuth對話框不顯示。
我正在開發Facebook應用程序作爲頁面選項卡應用程序。我想在用戶通過粉絲頁面訪問應用程序之前顯示OAuth對話框。我怎樣才能做到這一點?如何爲通過粉絲頁面選項卡訪問的Facebook應用程序顯示OAuth對話框?
對於畫布應用程序,當從應用程序設置(增強型身份驗證對話框)啓用OAuth對話框時,將通過apps.facebook.com/myapp
訪問應用程序時顯示OAuth對話框。但當我使用頁面標籤訪問相同的應用程序添加到粉絲頁面中,OAuth對話框不顯示。
查看教程Canvas Tutorial。
關鍵的訣竅是,你需要的目標(iframe的外部) 「_top」 窗口...例如,
echo('<script> top.location.href="' . $auth_url . '"</script>');
或
echo('<a target="_top" href="' . $auth_url . '">Authorize this application...</a>');
據我所知,你可以未在iframe內完成此授權流程。
我還推薦從Facebook開發者車庫:巴黎(2011-03-29)觀看短視頻Authentication: An Overview。
如果您想請求身份驗證(或在身份驗證後添加一些額外權限),請參閱兩個JavaScript SDK函數FB.getLoginStatus和FB.login。請注意0會啓動一個彈出窗口 - 所以它必須由用戶click
事件觸發(或者某些瀏覽器會阻止彈出窗口)。這種方法的好處是不需要頁面重定向 - 彈出窗口無需重新加載即可傳回響應。