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 2

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));