2017-03-05 109 views
0

我使用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

回答

0

//初始化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();