Facebook Share работает только в том случае, если пользователь вошел в систему?
Я надеюсь, что это не дубликат, но я не видел, чтобы это объяснялось раньше. У меня есть очень простая реализация Facebook Share, которую я пытаюсь использовать:
<a name="fb_share" type="button" share_url="http://www.google.com"></a>
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"
type="text/javascript">
</script>
Проблема в том, что при первом нажатии кнопки "поделиться" мне будет предложено войти в facebook. Когда я вхожу в систему, он ведет меня прямо к моей ленте новостей и не показывает ссылку, которой я пытаюсь поделиться. Но если я войду в систему, закрою окно, а затем снова нажму кнопку "Поделиться", она покажет ссылку, которую я пытаюсь делиться.
Есть ли что-то, что я упускаю из своего кода? Я использую IE9, если это имеет значение.
EDIT: похоже, что он отлично работает в Chrome,но не работает и в Safari.
EDIT 2 : после попытки использовать решение Juicy Scripter в диалоге Feed, у меня возникли проблемы со следующим кодом. После того, как мне будет предложено войти в Facebook, я получу красное сообщение об ошибке, которое просто говорит: "произошла ошибка, пожалуйста, повторите попытку позже.- Кто-нибудь может видеть? что я могу сделать не так со следующим кодом? Кроме того, есть ли "лучшая практика" в получении моей ссылки, чтобы быть фактической кнопкой Facebook (как это было для опциона на акцию?)
<a onclick='postToFacebook(); return false;'>FB post</a>
<script type="text/javascript">
function postToFacebook() {
FB.init();
FB.ui({ method: 'feed', link: "http://www.google.com" });
}
</script>`
Заранее большое спасибо!
3 ответа:
Как уже отмечалось в другом ответе кнопка Share устарела, поэтому ее лучше избегать.
Используйтедиалоговое окно ленты для публикации контента в ленте пользователя. Для общих целей следующий код может использоваться для обмена текущей ссылкой на страницу (обратитесь к документации для получения дополнительных параметров):
FB.ui({method: 'feed', link: document.location.href});
Я попробовал альтернативные способы вызова этого диалога обмена: с помощью
FB.ui({"method": "stream.share", "u": "http://www.google.com"});
и через прямой urlhttps://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.google.com
.Все они дали мне плохой пользовательский опыт, чтобы взять меня в мою ленту новостей после входа в Facebook в Safari (у меня нет IE9 под рукой, но я предполагаю, что это то же самое).
Я не думаю, что ты можешь что-то с этим поделать.Кроме того, Facebook отменил кнопку share в пользу кнопки Like. См. https://developers.facebook.com/docs/share/:
Кнопка Share была отклонена в пользу кнопки Like, и больше не будет поддерживаться. Пожалуйста, используйте кнопку Like всякий раз, когда возможно, чтобы привлечь максимальный трафик к вашим приложениям.
Я протестировал функцию выхода из системы как кнопка в Safari. Я нажимаю Like, он открывает всплывающее окно для входа в Facebook, после входа во всплывающее окно закрывается, но я должен нажать кнопку Like еще раз, чтобы она считалась.
У меня была та же проблема. Это было Safari не будет предварительно заполнять диалог содержимым после того, как пользователь вошел в систему. Я использовал метод Direct URL диалогового окна FB feed, и теперь все, кажется, работает в Safari.
Подробнее здесь .
Спасибо всем, кто ответил выше.