Facebook Нравится уведомления? - PullRequest
0 голосов
/ 08 апреля 2011

Сегодня я видел веб-сайт, на котором было написано: «Поделиться / Мне нравится этот сайт и получите скидку 10%».Мне было интересно: есть ли способ отследить, когда кто-то делится / любит мой сайт?Могу ли я сохранить некоторые данные этого пользователя в моем приложении?

Я знаю, что у этих событий есть некоторые обратные вызовы, и, возможно, я могу вызвать магию jQuery для отправки некоторых данных через ajax, когда пользователь нажимает на кнопку.

Есть идеи?

Спасибо!

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Подобный вопрос обсуждался здесь

FB.Event.subscribe('edge.create', function(href) 
    {

    });

Из приведенного выше кода вы можете получить только href без каких-либо данных пользователя. Так мне надоел следующий код

FB.Event.subscribe('edge.create', function (href) {             
            FB.login(function (response) {
              if (response.session) {
                //session object has uid & access token.
              }
            });

          });

Проблема, с которой вы столкнетесь из приведенного выше кода: Поскольку FB.login открывает всплывающее окно для входа в систему, некоторые браузеры блокируют всплывающее окно или предупреждают пользователя. Я попробовал приведенный выше код. Функциональность LIKE работает и публикуется на стене пользователя, но в отношении получения информации о пользователе: Firefox (4.0) - не предупреждал, но попросил пользователя авторизовать приложение и получить доступ к основной информации. IE 9 - дал предупреждение о POP UP. Google Chrome: заблокирован вход в систему.
Кажется, единственный способ достичь этого - позволить пользователю сначала войти на сайт с помощью Facebook Connect, а затем получить информацию о пользователе, используя

 FB.Event.subscribe('edge.create', function (href) {
            // href is the URL of the object that got liked
            var x;
            FB.getLoginStatus(function (response) {
              alert(response);
              if (response.session) {

              }
            });
0 голосов
/ 08 апреля 2011

Что-то вроде этого должно делать то, что вам нужно:

<fb:like href="http://www.google.com"></fb:like>
<!-- Like button to whatever object you want^^ -->

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js" 
    type="text/javascript" charset="utf-8"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" 
    type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
    FB.init({
        appId: 'APP_ID', 
        status: true, 
        cookie: true,
        xfbml: true
    });

    FB.Event.subscribe('edge.create', function(href) 
    {
        // href is the URL of the object that got liked

        // do whatever magic ajax you want
    });
</script>
0 голосов
/ 08 апреля 2011

Посетите сайт разработчиков Facebook.Содержит кучу информации.

http://developers.facebook.com/search?q=Events.create

и

http://developers.facebook.com/blog/post/149/

...