如何验证用户的facebook ID以防止再次提交

how to validate the facebook ID of a user to prevent from re-submitting again

本文关键字:ID 提交 facebook 何验证 验证 用户      更新时间:2023-09-26

我有一个使用php的图片比赛,可以让你输入上传或输入投票。它还最多只允许一个脸书用户上传一张照片到活动中。

我如何用MySQL数据验证他们的facebook ID,这样同一个已经提交过一次的用户(根据fbID)就无法再次点击进入比赛按钮,当点击时,会弹出一个消息框,说"你已经提交了一次"?

希望你们能提出建议。感谢并感谢您一直以来对我的帮助。

只需将Facebook用户ID与提交的照片一起存储在数据库中。

我想你会有一个包含照片数据的表格;创建一个新字段来存储Facebook用户ID。然后,当用户访问你的应用程序或其他什么时,检查他们的ID是否已经在数据库中。如果是这样,不要给他们上传表格,而是一条错误消息;如果没有,请允许他们上传。

编辑:查看Facebook的SDK。应该有一个例子来获取查看应用程序页面的用户的详细信息,其中包括Facebook ID。然后你可以在脚本中使用它。

<?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

您需要对用户进行身份验证并获取FB cookie。

请参阅FB开发者网站上的文档。

一旦你有了id,你就可以从数据库中提取它,并用它来检查用户是否提交了。