Facebook API的fb:注册返回“无效'client_id'”没有连接到Facebook时

我正在尝试将Facebook的注册工具用于我的网站。我想允许Facebook用户无缝登录我的网站,但也允许非Facebook用户通过统一的用户界面创建帐户。 我正在使用
<fb:registration>
标签。如果我在到达页面时已经连接到Facebook,一切都按预期工作(表格预先填入我的Facebook帐户的信息)。但如果我没有连接到Facebook,则会显示以下错误:
Invalid 'client_id'.
。 我究竟做错了什么? 非常感谢您的帮助。 您将在下面找到从服务器呈现的HTML代码:
<!doctype html>
<html xmlns:fb='http://www.facebook.com/2008/fbml'>
<head id='head'>
<title>MyWebSite - Signup</title>
<link rel='stylesheet' type='text/css' href='/client/Core.css'/>
<script language='JavaScript' type='text/javascript' src='/client/jQuery.js'></script>
<script type='text/javascript'>
function initialize() {
 $.getScript('client/Core.js');
 $.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js');
}

window.fbAsyncInit = function() {
 FB.init({
  appId   : 123456789, // replaced here by my App ID
  session : {},
  status  : true,
  cookie  : true,
  xfbml   : true
 });
 FB.Event.subscribe('auth.login', function() {
  window.location.href = 'DoLogin';
 });
};
</script>
</head>
<body onload='initialize();'>
<span id='fb-root'></span>
<fb:registration 
    fields='[{"name":"name"},{"name":"first_name"},{"name":"last_name"},{"name":"email"},{"name":"location"},{"name":"gender"},{"name":"password","view":"not_prefilled"},{"name":"captcha"}]' 
    redirect-uri='http://172.16.100.31/DoSignup'
    width='600'
    fb_only='false'
    allowTransparency='true'>
</fb:registration>
</body>
</html>
    
已邀请:
您可能必须配置应用程序以允许开发人员以外的用户访问该应用程序。我很难找到它,但如果我记得很清楚,这是一个沙盒应用程序的问题。     
我遇到了同样的问题,除了我已经禁用了沙箱。 我已将脚本标记包含为
<script src="http://connect.facebook.net/en_US/all.js#appId={YOUR_APP_ID}&xfbml=1"></script>

<fb:registration 
  fields="name,birthday,gender,location,email" 
  redirect-uri="https://developers.facebook.com/tools/echo/"
  width="530">
</fb:registration>
然而,就像在注册示例页面上一样,JavaScript SDK页面具有
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({
    appId  : 'YOUR APP ID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>
从外部脚本标签中删除
#appId={YOUR_APP_ID}&xfbml=1
就可以了。     
如果您使用Facebook注册了您的应用程序,他们将为您提供一个appID,您需要使用该ID而不是上面代码中的“123456789”AppID。     
只是在这里猜测 - 因为我有一个类似但不相同的问题: 如果您在http://developers.facebook.com/docs/plugins/registration/上使用Facebook XFBML代码并将{YOUR_APP_ID}替换为{1234123434534}(或其他),则会失败,因为它不会期待卷曲括号。 (与使用JSON并期待它们的各种其他区域不同)。 我不知道这是不是你做错了,但正如我刚刚发现的那样,这是一个容易犯的错误。     
对于测试,将
YOUR_APP_ID
设置为
113869198637480
    
就我而言,我在没有先登录用户的情况下显示fb注册链接。在长时间挠头之后,我要求用户在出示注册表之前通过facebook登录。这个错误很让我高兴。     

要回复问题请先登录注册