2016-01-21 87 views
0

我試圖與使用PHP SDK Facebook的我沒有任何問題,安裝和運行PHP SDK Web應用程序這是我的登錄腳本的index.phpFacebook的ID retreival通過PHP SDK

<?php 
session_start(); 
$app_id = '***************'; 
$app_secret = '******************************'; 
$my_url = 'https://www.domain.net/'; 
require_once __DIR__ . '/vendor/autoload.php'; 
$fb = new Facebook\Facebook(['app_id'=>$app_id,'app_secret'=>$app_secret,'default_graph_version'=>'v2.5',]); 
$helper = $fb->getRedirectLoginHelper(); 
if (isset($_SESSION['facebook_access_token'])){ 
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
try { 
    $fbresponse = $fb->get('/me'); 
    $fbuserNode = $fbresponse->getGraphUser(); 
} catch(Exception $e) { 
    error_log("index.php: Exception",0); 
    $permissions = ['email'/*, 'user_likes'*/]; 
    $loginUrl = $helper->getLoginUrl('https://www.sofiariders.net/fblog-callback.php', $permissions); 
    echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; 
    exit; 
} 
?> 

它的工作原理perfectlyq我越來越登錄與Facebook的,但問題是 - 我的個人資料的ID。 從$ fbuserNode->的getId()我得到的ID 140261546352183 而Facebook沒有使用網站findmyfbid.com我得到另一個ID通過URL https://www.facebook.com/profile.php?id=140261546352183

打開我的個人資料。例如對於相同的配置文件 - 它是100011050158477,並與該ID Facebook成功打開的URL https://www.facebook.com/profile.php?id=100011050158477

問題是 - 我怎麼能貓我的正常配置文件ID與PHP SDK? 爲什麼我得到錯誤的ID?

+0

https://www.facebook.com/app_scoped_user_id/140261546352183 – CBroe

回答

1

其他頁面做的事情是不允許的:刮。它直接從您的個人資料頁面獲取您的「真實」ID。在應用程序中,您只能獲得「應用程序範圍ID」 - 這足以識別用戶。你可以使用以下網址:https://www.facebook.com/140261546352183 - 它重定向到您的個人資料。

換句話說:你不容獲得「真正的」 ID了,而且你鴕鳥政策需要它。

+0

幫助了很多!還有一個問題 - 這是 「應用程序作用域ID」 在所有平臺(WEB-PHP,Android的Java中,IOS-目標C)是否一致?如果用戶在我的移動應用程序上登錄,那麼他們的ID將被傳輸到我的服務器的數據庫中,我的服務器上的管理員是否可以使用相同的「應用程序ID」查看用戶的配置文件? –

+0

是的,當然它是相同的,它的應用程序範圍,而不是平臺範圍;) - 在另一個應用程序中,您將獲得另一個應用程序作用域ID。 – luschn

+0

是的,您的管理員可以使用該ID查看個人資料。檢查我的答案中的鏈接。 – luschn