обновить базу данных, когда пользователь поделился ссылкой на Facebook - PullRequest
3 голосов
/ 27 декабря 2011

Можно ли обновить базу данных, когда пользователь поделился ссылкой на моем веб-сайте?

Например, некоторые баллы будут начислены на их счет, если они поделились ссылкой.

И какмогу ли я убедиться, что они действительно делятся ссылкой на Facebook, а не просто нажимают кнопку «Поделиться», а затем закрывают всплывающее окно ...

Я не знаком с Facebook, и попробовал Google это только сейчас, но все еще не нашелответ ...

Спасибо.

Редактировать:

   <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
    type="text/javascript">
   </script>

   <a name="fb_share" type="button" share_url="script2.php?id=XXX"> 

Ответы [ 4 ]

6 голосов
/ 27 декабря 2011

Обновление (21 августа 2013 г.) : API-интерфейс Facebook изменился с момента его публикации. Способ отслеживать лайки все тот же ( читать исходный ответ ниже ), но статус кнопки «Поделиться» изменился.

Сообщение об устаревании / информация. больше нигде не видно в документах, но это можно увидеть в этой ошибке . Кнопка «Поделиться» все еще может использоваться в соответствии с этим документом . Но нет прямого пути от Facebook, чтобы отслеживать долю. Я также не знаю никаких взломов для отслеживания акций.


Оригинальный ответ:

Из документов Facebook на по этой ссылке .

Кнопка «Поделиться» устарела в пользу кнопки «Нравится» и больше не поддерживается. Пожалуйста, по возможности используйте кнопку «Мне нравится», чтобы привлечь максимальный трафик к вашим приложениям.

Итак, я расскажу вам, как это сделать для кнопки «Мне нравится»:

Сначала используйте Javascript SDK

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
    // you can subscribe to events here
    // edge.create event is fired only when the user likes (which means that the wall post has already happened, when the like button was clicked) 
    FB.Event.subscribe('edge.create',
   function(response) {
    alert('You liked the URL: ' + response);
            // you can do some ajax call to your backend and update your database
   }
); 
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));
  </script>

Где-то на вашей странице есть кнопка «Нравится»

<fb:like href="http://example.com/fblike/" 
     send="true" width="450" show_faces="false"
     >
</fb:like>

Вы также можете изменить слово, отображаемое в кнопке «Мне нравится», выбрав «Порекомендовать», попробуйте автоматически сгенерировать код кнопки «Мне нравится» по этой ссылке .

6 голосов
/ 27 декабря 2011

Я думаю, вы ищете это http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/ Вам необходимо подписаться на это событие.

3 голосов
/ 27 декабря 2011

Да, это возможно.

Пример ссылки:

<a href="?share=YOUR+URL">SHARE TO FACEBOOK</a>

Пример кода для прозы

if(isset($_GET['share']))
{
    if(mysql_query("insert into table X() value()"))
    {
        //open window, you can use header('location:..') or meta redirect or another way, in this sample i'm using javascript window.open;
        echo '<script>window.open("http://www.facebook.com/sharer.php?u='.urlencode($_GET['share']).'","share","width=600,height=400");</script>';
    }
}

Для реализации кнопки «Мне нравится» в Facebook, эта ссылка может быть, вам может помочь

1 голос
/ 27 декабря 2011

Вам не нужен Facebook, вы могли бы просто выполнить вызов Javascript AJAX, когда кто-то нажимает кнопку «Нравится» на вашей странице.Звонок записывается в вашу базу данных.Просто поместите событие нажатия кнопки на кнопку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...