window.fbAsyncInit / FB.init не работает - PullRequest
2 голосов
/ 27 января 2012

Я только начинаю использовать Facebook JavaScript SDK, все, что я хочу сделать, - это позволить пользователям войти на мой веб-сайт с помощью своей учетной записи FB.Сначала я вставляю <div class="fb-login-button">Login with Facebook</div> и шаблон, как сказано в документации Facebook для веб-сайтов по адресу developers.facebook.com/docs/guides/web/#login

Я нажимаю кнопку входа в FB и получаювсплывающее окно, нажмите кнопку Разрешить ... и ничего не происходит.Я нигде не могу найти ни одного файла cookie, такого как fbsr_APPID (например, Request.Cookies("fbsr_MYAPPID") ничего не получается), и страница не перенаправила на URL-адрес сайта, указанный в настройках приложения.Я добавил еще немного JavaScript для отладки и буквально ничего не получил.

window.fbAsyncInit = function () {
    FB.init(
{
    appId: 'MYAPPID',
    channelUrl: http://bla,
    status: true,
    cookie: true,
    xfbml: true,
    oauth: true
});
    // Additional initialization code here
    alert("Please just prove this init code is running at all!!!!");

    FB.Event.subscribe('auth.login', function (response) {
        alert('Logged in: ' + response);
    }
    );

    FB.getLoginStatus(function (response) {
        alert('Check login: ' + response);
        if (response.authResponse) {
            var access_token = response.authResponse.accessToken;
            alert('Access token yay! ' + access_token);
        }
    });
};

Ни одно из предупреждений не появилось или что-то еще, что заставило меня думать, что весь скрипт не запускается.

Я переключился с этой кнопки facebook на ссылку аутентификации на стороне сервера, описанную по адресу developers.facebook.com/docs/authentication, и на этот раз переадресация определенно происходит, и я получаю code = в параметрах запроса, ноЯ получаю те же результаты [отсутствия результатов] при запуске любых методов FB.JavaScript, в Init или в качестве обработчика событий.Я до сих пор не могу найти cookie-файл facebook (может быть, метод на стороне сервера никогда не создаст его?), Но я рассчитываю с помощью Ajax-вызова или чего-то еще, я смогу использовать код для получения access_token (было бы неплохоесли документация FB дает некоторые подсказки о том, как использовать этот код, но это уже другая проблема).

Даже если я как можно больше буду отказываться от JavaScript SDK Facebook и полагаюсь на серверные сценарии,Я должен быть в состоянии по крайней мере использовать FB.getLoginStatus.Что я могу делать не так?

1 Ответ

4 голосов
/ 27 января 2012

Я сузил вашу проблему до этой строки

channelUrl: http://bla,

Он должен читать (конечно, с реальным URL вашего файла канала:

channelUrl: 'http://bla',

...