I'm trying to use Facebook's registration tool for my website. I would like to allow Facebook users to login seamlessly to my website, but also non-Facebook users to create an account through that unified UI.
I'm using the <fb:registration>
tag for that purpose. If I'm already connected to Facebook when arriving to the page, everything works as expected (the form is prefilled with information from my Facebook account). But if I'm not connected to Facebook, the following error is displayed: Invalid 'client_id'.
.
What am I doing wrong?
Thanks very much for your help.
You'll find below the HTML code rendered from the server:
<!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>
You might have to configure your application to let users other than the developers to access the app. I had a hard time finding it, but if I remember well, it was a matter of sandboxing the app or not.
I ran into the same problem, except I had the sandbox disabled already. I had included the script tag as
<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>
as it was on the registration example page, however, the JavaScript SDK page had
<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>
Removing the #appId={YOUR_APP_ID}&xfbml=1
from the external script tag did the trick.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With