这是登录页面脚本。
<?php
ini_set('error_reporting', E_ALL);
//includes
$id = '[MY ID]';
$secret = '[MY SECRET CODE]';
FacebookSession::setDefaultApplication($id, $secret);
$helper = new FacebookRedirectLoginHelper('[redirect Page]');
$loginUrl = $helper->getLoginUrl();
echo "<a href = " . $loginUrl . ">Login With Facebook</a>";
?>
,这是重定向页面脚本。
<?php
ini_set('error_reporting', E_ALL);
session_start();
//includes
$helper = new FacebookRedirectLoginHelper();
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
} catch('Exception $ex) {
// When validation fails or other local issues
}
if ($session) {
// Logged in
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$graph = $response->getGraphObject(GraphUser::className());
echo "Hi " . $graph->getName();
}
?>
当它重定向时,它来到我的重定向页面并给出一个空白页面。它给出的url如下:
http://redirectpage?code=[very long code.]
我想让这个执行并显示结果。
echo "Hi " . $graph->getName();
在您的重定向脚本中,确保将redirect_uri
设置为与登录页面相同:
$helper = new FacebookRedirectLoginHelper();
应:$helper = new FacebookRedirectLoginHelper('[redirect Page]');
如果redirect_uri
与原始页面不相同,SDK会抛出错误。