【问题标题】:Facebook API - Authenticate Specific User..?Facebook API - 验证特定用户..?
【发布时间】:2011-09-30 17:54:39
【问题描述】:

我正在通过 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。

【问题讨论】:

    标签: php facebook api oauth


    【解决方案1】:

    在 Facebook api 中有两种方式来验证用户身份,在线和离线。当您使用一个用户登录 Facebook 并想要访问另一个用户时,您实际上是在离线模式下访问另一个用户。为此,您需要离线访问权限。 获得此权限后,您可以按照此问题中的程序进行操作: Facebook offline access step-by-step

    附注:根据我的经验,人们真的不喜欢授予offline_access 权限。仅在您确实需要时才提出此要求,并了解这可能会限制将使用该应用程序的用户数量。只是我的两分钱。

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多