#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.