2010-11-22 16 views
0

你好,我是試圖利用Facebook showPermissionDialog讓用戶DATASFacebook.showPermissionDialog

這是我的代碼

function switch_menu(element, id) { 

     var ajax = new Ajax(); 
     Facebook.showPermissionDialog('manage_pages,offline_access,email,publish_stream,user_photos,user_birthday') 
     ajax.responseType = Ajax.FBML; 
     ajax.ondone = function(data) { 
     document.getElementById('topic_loading').setInnerFBML(data); 
     } 
     ajax.onerror = function() {} 
     ajax.post('#{oauth_authorize_url(:canvas => false, :format => :js)}') 
    } 

的對話框打開得非常好,我的問題是如何獲取用戶數據之後用戶已經接受了條件。

THX

回答

2

我想你已經找到了這個soln。在這裏是:

Facebook.showPermissionDialog("bla,bla,bla permissions", FacebookPermissionHandler); 

function FacebookPermissionHandler(handler) 
{ 
    new Dialog().showMessage('Okay.', ""+handler); 
    //handler contains allowed permission(s) [comma seperated] from the user. 
} 

FB文檔實際上解釋了這一點。

如果無法使用此功能,請仔細檢查文檔。

0

有一個bug in Facebook.showPermissionDialog()導致用戶給你的權限後,Ajax請求靜默失敗。由於您已經要求額外的許可,您可以設置ajax.requireLoginfalse。這應該修復Ajax請求。

function switch_menu(element, id) { 
    var ajax = new Ajax(); 
    Facebook.showPermissionDialog('manage_pages,offline_access,email,publish_stream,user_photos,user_birthday') 
    ajax.responseType = Ajax.FBML; 
    ajax.requireLogin = false; 
    ajax.ondone = function(data) { 
     document.getElementById('topic_loading').setInnerFBML(data); 
    } 
    ajax.onerror = function() {} 
    ajax.post('#{oauth_authorize_url(:canvas => false, :format => :js)}') 
}