使用 PHP 检索 Facebook 用户名或用户 ID

Retrive Facebook username or user-id with PHP

有什么方法可以检索用户 ID?我知道如何从 getGraphObjec 获取 id,但该 id 不是我想要的 id。我发现了类似 http://graph.facebook.com/userid. I want that id, for example I generate "10205575645933169" from getGraphObject, but I want "1313375997" which is used in http://graph.facebook.com/1313375997 的内容。我什至不知道这是否可行,但如果可行,有没有人知道这样做的方法?谢谢

<?php

session_start();

require_once 'vendor/autoload.php';

Facebook\FacebookSession::setDefaultApplication('856997051006897','8e034c9c2bb159f9eba8f251dcc68eba');
$facebook = new Facebook\FacebookRedirectLoginHelper('http://localhost/FacebookLogin/index.php');

try {
 if($session = $facebook->getSessionFromRedirect()){
  $_SESSION['facebook'] = $session->getToken();
  
  header('Location: index.php');
 }
 
 if(isset($_SESSION['facebook'])) {
  $session = new Facebook\FacebookSession($_SESSION['facebook']);
  $request = new Facebook\FacebookRequest($session, 'GET', '/me');
  $request = $request->execute();
  
  $user = $request->getGraphObject()->asArray();  
  } 
} catch(Facebook\FacebookRequestException $e) {
 // Facebook error
} catch(Exception $e) {
 // local error
}

我用 $user['id'] 调用它;在我的代码中。

图表 API returns APP 范围用户 ID。您可以在代码中使用该 ID。它仍然是同一个用户。 你可以像

这样的请求
$request = new Facebook\FacebookRequest($session, 'GET', '/'.$app_scoped_user_id);

我以前也遇到过同样的问题。你可以在这里查看 Graph API and PHP SDK returns different results

从 v2.0 开始,无法再检索 "username" 或 "real/global ID"。您只会获得用户的真实姓名和 App Scoped ID。使用用户名,您可以获得用户的 "real" ID,因此如果仍然可以获取用户名或 real/global ID,则应用范围 ID 的整个概念将无效。

查看更新日志以获取有关最近更改的更多信息:https://developers.facebook.com/docs/apps/changelog