Я вызываю FB.login()
в событии click в моем приложении. Диалог появится, как ожидалось, но когда пользователь выполнит вход в Facebook (и/или авторизацию приложения), диалог не закрывается. Вместо этого он загружает белую страницу (внутри диалогового окна), и заголовок изменяется на XD Proxy.
Это происходит только в Google Chrome (я использую последнюю версию, доступную прямо сейчас для Windows 7).
Это не происходит, если Chrome находится в режиме инкогнито.
Социальный плагин fb-login отлично работает в Chrome.
Чтобы проверить/отладить это дальше, я создал новое приложение для Facebook с настройками ванили. Единственное изменение, которое я сделал, это установить URL-адрес сайта в настройках приложения. Здесь HTML-код, который можно использовать для воссоздания этой ошибки.
Пример кода для воссоздания проблемы
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Chrome Bug Test</title>
</head>
<body>
<button onclick="dologin()">Login using Facebook</button>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : '[YOUR APP ID HERE]',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
</script>
<script type="text/javascript">
function dologin(){
FB.login(function(r){
if(console && console.log) {
console.log(r);
}
});
}
</script>
</body>
</html>
Настройки Facebook, которые я пытался изменить
- Настройка домена сайта ничего не изменила.
- Использование пользовательского файла channelUrl и канала не помогло.
Связанные ошибки, отслеживаемые в Facebook
- http://bugs.developers.facebook.net/show_bug.cgi?id=14789
- https://github.com/facebook/connect-js/issues/269
- http://bugs.developers.facebook.net/show_bug.cgi?id=12112
- http://developers.facebook.com/bugs/278247488872084
Связанные проблемы здесь при переполнении стека
- Пустое всплывающее окно с подключением FB
- facebook connect blank pop up on chrome
- Переадресация с помощью Facebook Connect в Chrome и Safari
- https://stackoverflow.com/info/4423718/blank-page-with-fb-connect-js-sdk-on-after-permission-request
- Facebook connect показывает пустое всплывающее окно при входе в Internet Explorer 8
- Всплывающее окно входа в Facebook открыто при использовании Fb.login в IE
- JS SDK FB.login() работает, но всплывающее диалоговое окно остается открытым после входа в систему
- Вход в Facebook зависает под "XD Proxy" когда страница установлена через Интернет-магазин Chrome.
- XD Proxy Facebook
- Всплывающее окно XD_Proxy не будет закрываться
Я видел, как многие люди сталкиваются с этим, но меня беспокоит то, что я не смог найти конкретного решения для этого. Facebook еще не ответил на сообщения об ошибках. Одним из решений было бы избавиться от кода аутентификации на основе Javascript и сделать это исключительно с помощью механизма serveride (PHP PHP SDK). Я бы хотел избежать этого из-за ограничений по времени.
У кого-нибудь есть идеи, как это исправить?