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

时间:2015-01-01 14:32:20

标签: php facebook facebook-graph-api

有没有办法可以检索用户ID?我知道如何从getGraphObjec获取id但该id不是我想要的id。我找到了像http://graph.facebook.com/userid这样的东西。我想要那个id,例如我从getGraphObject生成“10205575645933169”,但我想在http://graph.facebook.com/1313375997中使用“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']来称呼它;在我的代码中。

2 个答案:

答案 0 :(得分:1)

由于v2.0不再能够检索“用户名”或“真实/全局ID”。您只能获得用户的真实姓名和App Scoped ID。使用用户名,您可以获得用户的“真实”ID,因此,如果仍然可以获取用户名或真实/全局ID,则使用App Scoped ID的整个概念将无效。

查看更改日志,了解有关最近更改的更多信息:https://developers.facebook.com/docs/apps/changelog

答案 1 :(得分:0)

图形API返回APP SCOPED USER ID。您可以在代码中使用该ID。它仍然是同一个用户。 你可以做像

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

我曾经遇到过同样的问题。您可以在此处查看Graph API and PHP SDK returns different results