如何从Facebook登录使用Facebook的用户数据php-sdk

问题描述:

我试图从Facebook登录api php sdk获取用户信息。这是我的配置脚本。 我试图用这个fb指导,但我仍然没有得到它的正确。如何从Facebook登录使用Facebook的用户数据php-sdk

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->get('/me?fields=id,name', '{access-token}'); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

$user = $response->getGraphUser(); 

echo 'Name: ' . $user['name']; 

我无法获取用户的数据。请帮我解决我犯错的地方。

<?php 
if(!session_id()){ 
    session_start(); 
} 

// Include the autoloader provided in the SDK 
require_once __DIR__ . '/facebook-php-sdk/src/Facebook/autoload.php'; 

// Include required libraries 
use Facebook\Facebook; 
use Facebook\Exceptions\FacebookResponseException; 
use Facebook\Exceptions\FacebookSDKException; 

/* 
* Configuration and setup Facebook SDK 
*/ 
$appId   = '1698023223833500'; //Facebook App ID 
$appSecret  = 'e4113b39035af477669c40c9c87bc17b'; //Facebook App Secret 
$redirectURL = 'http://localhost/'; //Callback URL 
$fbPermissions = array('email'); //Optional permissions 

$fb = new Facebook(array(
    'app_id' => $appId, 
    'app_secret' => $appSecret, 
    'default_graph_version' => 'v2.2', 
)); 

// Get redirect login helper 
$helper = $fb->getRedirectLoginHelper(); 

// Try to get access token 
try { 
    if(isset($_SESSION['facebook_access_token'])){ 
     $accessToken = $_SESSION['facebook_access_token']; 

    }else{ 
      $accessToken = $helper->getAccessToken(); 
      echo $accessToken; 
    } 
} catch(FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
} catch(FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
} 

    ?> 
+0

您还没有登录用户在任何地方的代码...... – CBroe

试试下面的代码

$me = $response->getGraphUser(); 
$fullname = $me->getProperty('name'); 
+0

如何合并这两个代码为一体。因为第一个代码是来自facebook指南,第二个代码是创建一个。在secind代码中,我没有任何$响应。 – Mohammed

+0

@MohammedSabir你不需要第二个代码中的$响应 –