Facebook auth.sessionChange событие и изменения страницы - PullRequest
1 голос
/ 04 августа 2011

Я создаю приложение Facebook Canvas и слежу за более или менее демонстрационным приложением .

Как и в демонстрации, я могу получить пользовательские данные из signed_requestкоторый размещен на моем сайте на первой странице загрузки.Кроме того, как показано в демонстрации, я использую следующий фрагмент для перезагрузки страницы с изменениями пользователя:

var Config;

function facebookInit(config) {
    Config = config;

    FB.init({...});
    FB.Event.subscribe('auth.sessionChange', handleSessionChange);
    ...
}

function handleSessionChange(response) {
    if ((Config.userIdOnServer && !response.session) ||
            Config.userIdOnServer != response.session.uid) {
        goHome();
    }
}

function goHome() {
    top.location = 'http://apps.facebook.com/' + Config.canvasName + '/';
}

Здесь Config - это объект, который заполняется информацией с сервера.

Проблема возникает, когда пользователь перемещается по приложению по ссылке.Если я использую AJAX, страница фактически не перезагружается и все работает нормально.Но если я использую стандартную ссылку, пользователь переходит на другую страницу моего приложения со стандартным запросом GET.В этом случае я не знаю, как получить информацию о пользователе, поэтому Config.userIdOnServer не определено, и происходит перезагрузка страницы.

Конечно, я могу избежать этого, удалив вызов handleSessionChangeили созданием одностраничного приложения, содержащего только ссылки AJAX, но я чувствую, что упускаю что-то базовое из потока Facebook.

1 Ответ

1 голос
/ 05 августа 2011

По моей вине возникли проблемы с получением файла cookie с идентификатором пользователя для последующих запросов.

...