使用php创建应用程序ID后如何从facebook获取用户详细信息

Posted

技术标签:

【中文标题】使用php创建应用程序ID后如何从facebook获取用户详细信息【英文标题】:How to get user details from facebook after creating app id using php 【发布时间】:2016-05-19 07:13:20 【问题描述】:

我需要在我的网站上包含 facebook 登录以进行注册。我创建了一个 facebook 应用程序并登录。我只从 facebook 获取 prfile 名称和用户 ID。如何从 facebook 获取电子邮件和其他用户信息?

这些是我从 facebook 获得的记录:

数组([名称] => facebook 用户 [id] => 92141138733449309036)

<?php
    require 'src/facebook.php';
    $db = file_get_contents('../../../Bin/Configuration.php');
    $exp_db = array();
    $exp_db = explode('\'',$db);
    // print_r($exp_db);
    // exit;

    $hostname = $exp_db[1];
    $username = $exp_db[3];
    $password = $exp_db[5];
    $database = $exp_db[7];

    $connect = mysql_connect($hostname,$username,$password) or die(mysql_error());
    mysql_select_db($database,$connect) or die(mysql_error());


    $facebook = new Facebook(array(
      // 'appId'  => $recordFB['fb_application_id'],
      // 'secret' => $recordFB['fb_application_secret'],
      'appId'  => '1699756843642082',
      'secret' => 'a8aab00a1e1a5bdcdd9d4665c0972637',

      'cookie' => true,
    ));

    // Get User ID
    $user = $facebook->getUser();

    // We may or may not have this data based on whether the user is logged in.
    //
    // If we have a $user id here, it means we know the user is logged into
    // Facebook, but we don't know if the access token is valid. An access
    // token is invalid if the user logged out of Facebook.

    if ($user) 
      try 
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
       catch (FacebookApiException $e) 
        error_log($e);
        $user = null;
      
    
    else
    
      echo "You are NOT Logged in";
    

    if (!$user_profile) 
      $loginUrl=$facebook->getLoginUrl(array('canvas'=>1,
                                             'fbconnect' => 0,
                                    'req_perms'=> 'email,user_birthday ,publish_stream',
                                          'next' => CANVAS_PAGE,
                                          'cancel_url' => CANVAS_PAGE));
      echo '<fb:redirect url="' . $loginUrl . '" />';
      # code...
    else
    
      echo "you can use this app";
    

    $email=$user_profile['email'];
?>

我无法从 facebook 获得其他详细信息。请告诉我从 facebook 访问用户详细信息的可能解决方案...提前谢谢您。

【问题讨论】:

how to get facebook profile details usring script的可能重复 【参考方案1】:

在更新日志中搜索“声明性字段”:https://developers.facebook.com/docs/apps/changelog#v2_4

不指定要获取的字段,只会获取ID和名称。

【讨论】:

以上是关于使用php创建应用程序ID后如何从facebook获取用户详细信息的主要内容,如果未能解决你的问题,请参考以下文章

使用 php api 从 facebook 获取用户名和 id

在依赖 Auth0 进行 Facebook 身份验证的应用程序中选择用户 ID?

Facebook sdk 使用 php:如何获取已连接用户的用户 ID

通过图形 api 从 php 发布 Facebook 帖子

用于 Facebook 事件创建的 location_id

如果我在 ios 中使用电话号码登录,如何从 Facebook 获取电子邮件 ID?