Как подсчитать количество социальных сетей на веб-странице локально

#javascript #php #html #facebook

#javascript #php #HTML #Facebook

Вопрос:

У меня есть кнопка Facebook Share на странице, и теперь пользователь публикует сообщение на своей временной шкале, теперь я хочу подсчитать, сколько раз конкретный пользователь делится им в этом сеансе.

Например, количество будет инициализировано равным 0 для всех пользователей, я хочу, чтобы каждый раз, когда человек успешно публикует сообщение, количество увеличивалось.

Мы создаем переменную count и инициализируем 0, теперь кнопка share работает нормально, как я могу увеличивать количество каждый раз, когда сообщение успешно публикуется? Какие переменные понадобятся и как это можно сделать?

 <?php
session_start();
$fbcount = $_SESSION['count'];

function incrememnt() {
      $fbcount  ;
 }
?>

<script>
document.getElementById('shareBtn').onclick = function() {
  FB.ui({
    method: 'share',
    display: 'popup',
    href: 'https://developers.facebook.com/docs/',
  }, function(response){});
}
</script>
  

Комментарии:

1. Я бы подумал, что вы могли бы что-то сделать в функции (ответ). В ответе должна содержаться некоторая информация о том, что произошло с вызовом. Надеюсь, даже какой-то флаг успеха. Затем сделайте что-нибудь, если это было успешно, например, вызовите increment(). Первое, что я бы сделал, это console.log (ответ) и посмотреть, что там.

2. @user1289451 Он возвращает код состояния «200», когда он успешен, можете ли вы использовать это каким-либо образом, чтобы использовать с ним функцию увеличения? Спасибо.

3. Конечно, вы можете. Смотрите мой ответ

4. Зачем пользователю публиковать один и тот же пост (?) несколько раз? (Надеюсь, вы знаете, что вам не разрешается каким-либо образом вознаграждать пользователей за совместное использование, а также блокировать контент за «принудительный» общий доступ.)

Ответ №1:

Я не уверен в точном синтаксисе, не видя свойств объекта ответа, но вы должны быть в состоянии сделать что-то вроде:

   document.getElementById('shareBtn').onclick = function() {
      FB.ui({
        method: 'share',
        display: 'popup',
        href: 'https://developers.facebook.com/docs/',
      }, function(response){
             if(response.statusCode == '200'){
                 increment();
             }    

      });
    }
  

Скорее всего, вам придется изменить response.StatusCode на любое свойство, которое у вас действительно есть в объекте ответа.

Это также было бы хорошим местом для обработки ошибок. Может быть, добавить else после if, чтобы что-то сделать, если это что угодно, кроме 200.