Facebook PHP SDK 4.0和Graph API v2.8有可能吗?

问题描述:

我使用Facebook PHP SDK 4.0以及Graph API v2.2。我想知道是否可以使用Graph API v2.8和这个PHP SDK 4.0(我已经在我的服务器上安装了PHP 5.2并且我不能使用PHP SDK 5.0)。Facebook PHP SDK 4.0和Graph API v2.8有可能吗?

目前,我使用下面的代码来获取用户ID

$facebook = new Facebook(array(
    'appId' => $facebookAppId, 
    'secret' => $facebookSecret 
)); 
$user = $facebook->getUser(); 
if ($user) { 
    $user_profile = $facebook->api('/me'); 
    $user_id = $user_profile['id']; 
} 

我被警告的API V2.2将在本月下旬过时,我想我的代码迁移到API第2版0.8。

非常感谢。

+1

IIRC SDK v4未提供通过配置/初始化指定API版本的方法。如果您没有直接修改源文件的问题,覆盖base_facebook.php中的基本API地址可能是指定所有调用的API版本的最简单方法。 – CBroe

+0

嗨。非常感谢您的回答。 我只需要让Facebook用户登录,并获得他们的用户ID。为了这个任务,我怀疑我不需要SDK。我一直在浏览这个简单的提案(http://wp-time.com/login-with-facebook-using-api-in-php/),我正在考虑在没有SDK的情况下实现它。 – Hookstark

//初始化Facebook PHPSDK5和v2.8。

$fb = new Facebook\Facebook([ 
    'app_id'    => 'xxxxxxxxxxxx', 
    'app_secret'   => 'xxxxxxxxxxxxxxxxxxxxxxxx', 
    'default_graph_version' => 'v2.8', 
]); 

$helper = $fb->getRedirectLoginHelper(); 
try { 
    $accessToken = $helper->getAccessToken(); 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    // There was an error communicating with Graph 
    echo $e->getMessage(); 
    exit; 
} 

if (isset($accessToken)) { 
    // Logged in. 
    $_SESSION['facebook_access_token'] = (string) $accessTokenLong; 
} 

$fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 

$me = $fb->get('/me'); 
$me_array = $me->getGraphEdge()->asArray();