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 2

3 ответа:

Как уже отмечалось в другом ответе кнопка Share устарела, поэтому ее лучше избегать.

Используйтедиалоговое окно ленты для публикации контента в ленте пользователя. Для общих целей следующий код может использоваться для обмена текущей ссылкой на страницу (обратитесь к документации для получения дополнительных параметров):

FB.ui({method: 'feed', link: document.location.href});

Я попробовал альтернативные способы вызова этого диалога обмена: с помощью FB.ui({"method": "stream.share", "u": "http://www.google.com"}); и через прямой url https://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.

Подробнее здесь .

Спасибо всем, кто ответил выше.