Facebook регистрационная страница-недопустимый "идентификатор клиента", если вы не вошли в Facebook
Я Facebook сделал регистрационную форму, которая работает с пользовательскими полями и функциями, как я ожидаю, за исключением тех случаев, когда пользователь не вошел в facebook, когда они впервые посещают форму.
В этом случае форма не отображается на экране и появляется следующая ошибка:
Не удается загрузить регистрационную форму для этого идентификатора. Возможно, у вас есть ранее заблокировал это приложение на Facebook. Перейдите на страницу конфиденциальности Facebook настройки, чтобы разблокировать это приложение. (Ошибка: Недопустимо 'client_id'.)
Теперь я уже знаю, что это обсуждалось на сайте, но решения, предлагаемые в другом месте, не работают для меня, и я действительно хочу, чтобы это работало на основе решения XFBML, которое поддерживает facebook (демо здесь http://developers.facebook.com/docs/plugins/registration/)
Если Facebook вышел из системы, вы можете посетить тест моего кода, взятый непосредственно из примера facebook и практически не измененный здесь.: https://www.askanutritionist.com/fb.html
Кстати, песочница yes отключена в настройках приложения facebook, поскольку это общее исправление, предложенное другими на S. O.
Спасибо, что уделили мне время. Примечание; Я бы прокомментировал другие существующие вопросы с этой темой, но stackoverflow не позволяет мне (пока).
2 ответа:
Убедитесь, что приложение, идентификатор которого вы используете, не ограничено демографически (например, по возрасту или стране) и что оно все еще не находится в режиме песочницы.
Если он ограничен или находится в режиме песочницы, пользователи, которые не вошли в систему и которые соответствуют применяемым ограничениям (или для режима песочницы являются администраторами приложения), не могут видеть существование приложения или его детали, пока они не войдут.
Просто для подтверждения; я никогда не исправлял это должным образом. Вместо Facebook sdk я сделал обходной маневр и смог проверить javascript через Facebook sdk, чтобы увидеть, вошел ли пользователь в систему или нет, когда он впервые попал на страницу с регистрационной формой facebook.
Я делаю перенаправление http, если они не вошли в систему (или не авторизованы), и если они вошли позже на странице, которую я вызываю, чтобы ввести форму 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));