Facebook的注册页面 - 无效“CLIENT_ID”时没有登录到Facebook的

问题描述:

我做了一个网站登记表如我所料,随着自定义字段和功能的工作原理,当用户没有登录到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.有建议。

谢谢你的时间。 注意;我会评论这个主题的其他现有问题,但*不会让我(还)。

只是为了确认;我从来没有真正解决这个问题。相反,我做了一个工作,并能够通过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)); 

检查您使用的ID的应用程序是否受到人口统计学限制(例如按年龄或国家),并且该应用程序尚未处于沙盒模式。

如果它受到限制或处于沙箱模式,那么未登录并满足应用限制的用户(或沙箱模式,是该应用的管理员)无法看到该应用的存在或其详细信息直到他们登录。