0

Я создаю приложение, которое будет агрегировать данные из разных профилей социальных сетей. Поэтому я создал интерфейс, в котором клиент может выбрать, какой профиль социальной сети он сможет предоставить моему приложению. Интерфейс имеет либо кнопку, которую пользователь нажимает для авторизации приложения, либо кнопку, которая отменяет предоставленные привилегии моему приложению, если пользователь изменил свое мнение о предоставлении права на мое приложение.Facebook JavaScript SDK - getLoginStatus всегда возвращает неизвестно

Мой поток следующие:

  • На странице загрузки я прошу Facebook того, зарегистрирован ли пользователь в
    • Если пользователь зарегистрирован в качестве опции для отключения обеспечивается
    • , если пользователь не зарегистрирован (или статус неизвестен < - это важно) предоставляется опция для входа в систему.

И это работает, как это должно быть. Но странно.

В начале

FB.getLoginStatus(loginStatusCallback, true); 

function loginStatusCallback(response) { 
    if(response.status == 'not_authorized') { 
     .... 
    } else if(response.status == 'unknown') { 
     .... 
    } else { 
     .... 
    } 
} 

Для входа в систему я использую

FB.login(loginCallback); 

Войти успешно, и я действовать соответствующим образом. Но если я перезагружу страницу response.status будет 'unknown', хотя я вошел в систему Facebook, и мое приложение находится в списке зарегистрированных приложений. Записан Насколько я понимаю, SDK-документация «unknown» должен быть ответом, если я не вошел в систему Facebook (что эквивалентно не подключению в моем приложении). Поэтому, даже если пользователь уже зарегистрировался, ему будет необходимо снова войти в систему, и это неприемлемо.

+0

как вы можете видеть - параметр round trip to Facebook установлен в true. SDK инициализируется правильно. Проблема была не на стороне приложения, а на стороне SDK. – Rouz

ответ

3

Похоже, что проблема не была на моей стороне, поскольку она исправлена ​​без изменений кода. Проблема в том, что я когда-то использовал FB.logout(), и вместо того, чтобы просто вывести меня из приложения, Facebook считал меня отключенным.

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

Для отсоединения пользователя от приложения Я не использую FB.logout() вместо этого я отзывать привилегии с

FB.api("/me/permissions", "delete", logoutCallback); 

Теперь все работает как надо ... Но для меня это выглядит как вопрос с SDK. ..

Смежные вопросы