как проверить идентификатор пользователя в Facebook, чтобы предотвратить повторную отправку - PullRequest
0 голосов
/ 11 января 2012

У меня есть конкурс рисунков с использованием php, который позволяет вам войти, чтобы загрузить или войти, чтобы проголосовать.Это также позволяет только одному пользователю Facebook загружать максимум одно изображение на событие.

Как я могу проверить его идентификатор Facebook с данными MySQL, чтобы тот же пользователь, который уже отправил один раз (согласно fbID)Вы не можете нажать кнопку «Принять участие в конкурсе» еще раз, и при щелчке появится окно с сообщением «Вы уже отправили один раз»?Спасибо и ценим все ваше время за помощь.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Просто сохраните идентификатор пользователя Facebook вместе с отправкой фотографий в вашей базе данных.

Я предполагаю, что у вас будет таблица с данными фотографий;создайте новое поле для хранения идентификатора пользователя Facebook тоже.Затем, когда пользователь посещает ваше приложение или что-то еще, проверьте, есть ли его идентификатор в базе данных.Если это так, не дайте им форму загрузки, но сообщение об ошибке;если нет, разрешите им загружать.

РЕДАКТИРОВАТЬ: Проверить SDK Facebook .Там должен быть пример, чтобы получить информацию о пользователе, просматривающем страницу вашего приложения, которая включает в себя идентификатор Facebook.Затем вы можете использовать это в своем скрипте.

<?php

require 'facebook.php';

$facebook = new Facebook(array(
    'appId'  => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
));

$user = $facebook->getUser();

if ($user) {
    try {
        $user_profile = $facebook->api('/me');
    }
    catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}

if ($user) {
    $logoutUrl = $facebook->getLogoutUrl();
}
else {
    $loginUrl = $facebook->getLoginUrl();
    echo "<script>top.location.href='$loginUrl';</script>";
    exit;
}

// if we're here, the user has successfully authenticated
// you now have access to their profile in $user_profile

$userId = intval($user_profile['id']);

// logic goes here to query database and check if $userId
// has already been used to submit a photo or not
0 голосов
/ 11 января 2012

Вам нужно будет аутентифицировать пользователя и получить cookie-файл FB.

См. Документацию на сайте разработчика FB .

Когда у вас есть идентификатор, вы можете извлечь его из БД и использовать его, чтобы проверить, отправил пользователь или нет.

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