首页 文章

Facebook API - 验证特定用户..?

提问于
浏览
2

我通过Facebook开发人员文档中发布的简单示例连接到Facebook API

$code = $_GET["code"];
    if(empty($code)) {
        // Really long scope, but I've tested it, and there aren't any errors here.
        $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . 
        "&redirect_uri=" . urlencode($my_url) . 
        '&scope=email,read_stream,publish_stream,read_mailbox,read_requests,create_event,
        manage_pages,publish_checkins,manage_friendlists,read_friendlists,user_about_me,
        user_activities,user_birthday,user_checkins,user_education_history,user_events,
        user_hometown,user_interests,user_likes,user_location,user_photo_video_tags,
        user_photos,user_relationship_details,user_relationships,user_religion_politics,
        user_status,user_videos,user_website,user_work_history';

    echo "<script> window.location.href='" . $dialog_url . "'</script>";
}

然后我使用回调来获取访问令牌并运行检查以查看用户是否已经在我的数据库中 . 但是,我注意到如果我登录到另一个Facebook帐户并使用我的数据库中存储的登录来登录用户,当它进行身份验证时,它是针对当前登录的Facebook用户 .

我的问题是:有没有办法改变上述身份验证代码,以使用存储在我的数据库中的Facebook用户ID,并专门验证该用户 .

例如,如果具有活动Facebook会话的用户不是登录到我的站点的用户,则它将结束当前会话(退出Facebook)并请求用户登录Facebook .

1 回答

  • 0

    有两种方法可以在Facebook api中在线和离线验证用户 . 当您使用一个用户登录到Facebook并且想要访问另一个用户时,实际上您正在以脱机模式访问其他用户 . 为此,您需要离线访问权限 . 获得此权限后,您可以按照此问题中的步骤操作:Facebook offline access step-by-step

    A side note: 根据我的经验,人们真的不喜欢给予offline_access权限 . 如果您确实需要它,请仅询问此问题,并了解这可能会限制将使用该应用程序的用户数量 . 只是我的两分钱 .

相关问题