Кнопка «Отправить в Messenger» в Safari не отправляет событие веб-перехватчика

У меня есть кнопка «Отправить в Messenger» в моем приложении. Раньше он работал нормально. Но теперь это не работает в Safari на Mac и iOS. Он отлично работает в Chrome, но при нажатии из Safari Facebook не отправляет событие на мой веб-перехватчик.

Снимок экрана ниже: В Safari я также получаю определенную страницу после того, как пользователь нажимает на аутентификацию «Нажмите, чтобы вернуться к URL-адресу».

Изображение, на котором пользователи нажимают кнопку "Отправить в мессенджер"
Пользователя просят пройти аутентификацию
Нажмите, чтобы вернуться к снимку экрана URL — вероятный виновник
Статус кнопки показан одобренным, но на самом деле это не так


person Aakash Barot    schedule 17.02.2018    source источник
comment
Возможная причина: Exception with thrown value: SecurityError (DOM Exception 18): Blocked a frame with origin "https://www.facebook.com" from accessing a frame with origin "http://alpha.lvh.me:3000". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match.   -  person Aakash Barot    schedule 17.02.2018
comment
Но он все еще работает в Chrome. В точно такой же обстановке   -  person Aakash Barot    schedule 17.02.2018
comment
Дополнительная информация: Если я уже авторизовал страницу, она работает нормально, так как всплывающих окон нет.   -  person Aakash Barot    schedule 17.02.2018
comment
Вы когда-нибудь решали это? Столкнулся с аналогичной проблемой =/ Если я использую сайт с использованием https, единственное пойманное исключение: The frame requesting access set "document.domain" to "facebook.com", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access. Эта ошибка возникает при открытии модального окна подтверждения, и после этого исключения не выдаются.   -  person Hodrobond    schedule 06.04.2018


Ответы (1)


Сообщение об ошибке, данное вам, указывает на проблему:

Кадр, запрашивающий доступ, имеет протокол «https», кадр, к которому осуществляется доступ, имеет протокол «http». Протоколы должны совпадать.

При использовании плагина «Отправить в мессенджер» существуют некоторые требования к вашему собственному домену. См. документацию здесь. Один из них заключается в том, что вы должны белый список ваш домен. Здесь утверждается:

Используйте полное доменное имя, например https://www.messenger.com/. IP-адреса и локальный хост не поддерживаются для внесения в белый список.

Вы обслуживаете свое приложение с помощью HTTP с http://alpha.lvh.me:3000, но вы должны обслуживать его с помощью HTTPS. Из их требований также неясно, можете ли вы использовать номер порта или нет, но я думаю, вам лучше посмотреть на ngrok или localtunnel для локальной разработки.

[Изменить] Я думаю, что это, вероятно, проблема с политикой безопасности контента (CSP) в Safari. Немного об этом читайте здесь.

person Marc Littlemore    schedule 18.02.2018