2013-02-17 50 views
2

我做了一個網站登記表如我所料,隨着自定義字段和功能的工作原理,當用戶沒有登錄到Facebook的時候,他們首先參觀EXCEPT形成。Facebook的註冊頁面 - 無效「CLIENT_ID」時沒有登錄到Facebook的

在這種情況下,形式不上屏幕呈現並顯示以下錯誤:

Unable to load the registration form for this ID. You may have previously blocked this app on Facebook. Go to your Facebook privacy settings to unblock this app. (Error: Invalid 'client_id'.)

現在我已經知道,這已經在網站上討論,但在其他地方所提供的解決方案並沒有爲我工作我真的希望這個工作基於在Facebook支持的XFBML解決方案(演示在這裏http://developers.facebook.com/docs/plugins/registration/

如果您註銷Facebook,您可以訪問我的代碼的測試,直接從facebook的例子中獲取,並且很難在這裏修改:https://www.askanutritionist.com/fb.html

順便說一句,是的沙盒在Facebook應用程序設置中被禁用,因爲這是一個常見的修復其他人S.O.有建議。

謝謝你的時間。 注意;我會評論這個主題的其他現有問題,但stackoverflow不會讓我(還)。

回答

1

只是爲了確認;我從來沒有真正解決這個問題。相反,我做了一個工作,並能夠通過facebook sdk進行javascript檢查,以查看用戶是否在第一次打開具有Facebook註冊表單的頁面時登錄。

我做了一個http重定向,如果他們沒有登錄(或未被授權),並且他們稍後在頁面中登錄,我調用init來創建facebook表單。

window.fbAsyncInit = function() { 
FB.init({ 
    appId  : xxxx, // App ID 
    channelUrl : 'http:///xxxxx/fbchannel.php', 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
}); 

// Additional initialization code here 
FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     // all ok! 
     //var uid = response.authResponse.userID; 
     //var accessToken = response.authResponse.accessToken; 
    } else if (response.status === 'not_authorized') { 
     window.location.href="create_account_with_facebook?authorizefirst"; 
    } else { 
     window.location.href="create_account_with_facebook?loginfirst"; 
    } 
}); 
}; 
// Load the SDK Asynchronously 
(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 
1

檢查您使用的ID的應用程序是否受到人口統計學限制(例如按年齡或國家),並且該應用程序尚未處於沙盒模式。

如果它受到限制或處於沙箱模式,那麼未登錄並滿足應用限制的用戶(或沙箱模式,是該應用的管理員)無法看到該應用的存在或其詳細信息直到他們登錄。