Php 未指定fb_交换_令牌参数
我找不到这方面的任何文件 这是我的密码: index.phpPhp 未指定fb_交换_令牌参数,php,facebook,facebook-graph-api,facebook-php-sdk,facebook-login,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,Facebook Login,我找不到这方面的任何文件 这是我的密码: index.php <?php session_start(); require_once __DIR__ . '/vendor/autoload.php'; $fb = new Facebook\Facebook([ 'app_id' => '000000000000000', 'app_secret' => '00000000000000000000000000000', 'default_graph_version'
<?php
session_start();
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '000000000000000',
'app_secret' => '00000000000000000000000000000',
'default_graph_version' => 'v2.6',
'persistent_data_hander' => 'session'
]);
$redirect = 'http://www.domain.com/loggedin.php';
$helper = $fb->getRedirectLoginHelper();
if (isset($_COOKIE['LOGIN'])){
header("Location: http://www.domain.com/loggedin.php");
die();
}else{
$permissions = ['user_birthday, user_location'];
$loginUrl = $helper->getLoginUrl($redirect,$permissions);
?>
<a href="<?php echo "".$loginUrl; } ?>"><img src="assets/img/fbloginbutton.png"></a>
<?php
//debug
//debug
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//debug
//debug
session_start();
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '00000000000000000',
'app_secret' => '000000000000000000000000000000000',
'default_graph_version' => 'v2.6',
'persistent_data_hander' => 'session'
]);
$helper = $fb->getRedirectLoginHelper();
if (isset($_SESSION['fb_a_token']))
{
$fb->setDefaultAccessToken($_SESSION['fb_a_token']);
}
else
{
try {
$accessToken = $helper->getAccessToken();
$oAuth2Client = $fb->getOAuth2Client();
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
$fb->setDefaultAccessToken($longLivedAccessToken);
$_SESSION['fb_a_token'] = (string) $longLivedAccessToken;
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
//header("Location: http://www.domain.com");
die();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
// echo 'Facebook SDK returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Exception $e){
header("Location: http://www.domain.com");
die();
}
}
$accessToken = $_SESSION['fb_a_token'];
$request_parm = '/me?fields=name,gender,age_range,birthday,location';
try {
$response = $fb->get($request_parm);
$userNode = $response->getGraphUser();
}catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
//echo 'Graph returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
//echo 'Facebook SDK returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Exception $e){
header("Location: http://www.domain.com");
die();
}
setcookie('LOGIN', 'yes', time() + 9600);
$image = 'https://graph.facebook.com/'.$userNode->getId().'/picture?width=200';
$birthday = $userNode->getProperty('birthday');
$year = (int) $birthday->format('Y');
$curryear = (int) date("Y");
$userage = $curryear - $year;
$gender = $userNode->getProperty('gender');
if ($gender == null) {
$gender = "other";
}
?>
<h3>First name: <?php echo "".$userNode->getName(); ?> </h3>
<h3>Age: <?php echo "".$userage; ?> </h3>
<h3>Gender: <?php echo "".$gender; ?> </h3>
<h3>Location: <?php echo "".$userNode->getProperty('location')['name']; ?> </h3>
loggedin.php
<?php
session_start();
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '000000000000000',
'app_secret' => '00000000000000000000000000000',
'default_graph_version' => 'v2.6',
'persistent_data_hander' => 'session'
]);
$redirect = 'http://www.domain.com/loggedin.php';
$helper = $fb->getRedirectLoginHelper();
if (isset($_COOKIE['LOGIN'])){
header("Location: http://www.domain.com/loggedin.php");
die();
}else{
$permissions = ['user_birthday, user_location'];
$loginUrl = $helper->getLoginUrl($redirect,$permissions);
?>
<a href="<?php echo "".$loginUrl; } ?>"><img src="assets/img/fbloginbutton.png"></a>
<?php
//debug
//debug
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//debug
//debug
session_start();
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '00000000000000000',
'app_secret' => '000000000000000000000000000000000',
'default_graph_version' => 'v2.6',
'persistent_data_hander' => 'session'
]);
$helper = $fb->getRedirectLoginHelper();
if (isset($_SESSION['fb_a_token']))
{
$fb->setDefaultAccessToken($_SESSION['fb_a_token']);
}
else
{
try {
$accessToken = $helper->getAccessToken();
$oAuth2Client = $fb->getOAuth2Client();
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
$fb->setDefaultAccessToken($longLivedAccessToken);
$_SESSION['fb_a_token'] = (string) $longLivedAccessToken;
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
//header("Location: http://www.domain.com");
die();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
// echo 'Facebook SDK returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Exception $e){
header("Location: http://www.domain.com");
die();
}
}
$accessToken = $_SESSION['fb_a_token'];
$request_parm = '/me?fields=name,gender,age_range,birthday,location';
try {
$response = $fb->get($request_parm);
$userNode = $response->getGraphUser();
}catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
//echo 'Graph returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
//echo 'Facebook SDK returned an error: ' . $e->getMessage();
header("Location: http://www.domain.com");
die();
} catch(Exception $e){
header("Location: http://www.domain.com");
die();
}
setcookie('LOGIN', 'yes', time() + 9600);
$image = 'https://graph.facebook.com/'.$userNode->getId().'/picture?width=200';
$birthday = $userNode->getProperty('birthday');
$year = (int) $birthday->format('Y');
$curryear = (int) date("Y");
$userage = $curryear - $year;
$gender = $userNode->getProperty('gender');
if ($gender == null) {
$gender = "other";
}
?>
<h3>First name: <?php echo "".$userNode->getName(); ?> </h3>
<h3>Age: <?php echo "".$userage; ?> </h3>
<h3>Gender: <?php echo "".$gender; ?> </h3>
<h3>Location: <?php echo "".$userNode->getProperty('location')['name']; ?> </h3>
名字:
年龄:
性别:
地点:
我想知道fb_交换_代币的作用以及如何处理它
重演我的错误:
有人能帮忙吗?这是扩展访问令牌过程中使用的一个参数,看起来您此时没有有效的访问令牌,因此也无法获得长期有效的访问令牌。@CBroe,但我已登录。如果我刷新loggedin.php页面,似乎我成功地从Facebook获取了用户数据。只有当我关闭浏览器时,事情才会停止工作(尽管cookies仍然存在)。我不知道如何解决这个问题。@CBroe我用FB调试工具检查过,你说得对。我只得到一个短期访问令牌。我仍然不知道为什么我的代码不起作用<代码>$accessToken=$helper->getAccessToken()$oAuth2Client=$fb->getOAuth2Client()$longLivedAccessToken=$oAuth2Client->getLongLivedAccessToken($accessToken)代码>
$accessToken=$helper->getAccessToken()代码>–这就是问题所在。您正在使用RedirectHelper,它希望URL中存在code
参数,以交换短期访问令牌code
不存在,因此您无法从该方法调用中获得访问令牌,因此您没有要在下一步中扩展的访问令牌。如果您仍然拥有有效的访问令牌/登录用户,则需要执行某种检查,在这种情况下不要使用redirecthelper。这是扩展访问令牌过程中使用的一个参数,看起来您此时没有有效的访问令牌,因此您也无法获得长期有效的访问令牌。@CBroe但我已登录。如果我刷新loggedin.php页面,似乎我成功地从Facebook获取了用户数据。只有当我关闭浏览器时,事情才会停止工作(尽管cookies仍然存在)。我不知道如何解决这个问题。@CBroe我用FB调试工具检查过,你说得对。我只得到一个短期访问令牌。我仍然不知道为什么我的代码不起作用<代码>$accessToken=$helper->getAccessToken()$oAuth2Client=$fb->getOAuth2Client()$longLivedAccessToken=$oAuth2Client->getLongLivedAccessToken($accessToken)代码>$accessToken=$helper->getAccessToken()代码>–这就是问题所在。您正在使用RedirectHelper,它希望URL中存在code
参数,以交换短期访问令牌code
不存在,因此您无法从该方法调用中获得访问令牌,因此您没有要在下一步中扩展的访问令牌。如果您仍然拥有有效的访问令牌/登录用户,则需要执行某种检查,在这种情况下不要使用redirecthelper。