Php 将参数传递到Facebook登录回调
我有这个简单的facebook登录集成。 我需要向回调传递一个自定义参数(在本例中是同一个页面),但是新的$helper->getLoginUrl不允许添加参数。以前我看到下一个参数可以用来存储字符串,但现在它被删除了。 似乎我也无法在会话中添加自定义参数。 有什么方法可以达到我的目的吗Php 将参数传递到Facebook登录回调,php,facebook,session,callback,facebook-oauth,Php,Facebook,Session,Callback,Facebook Oauth,我有这个简单的facebook登录集成。 我需要向回调传递一个自定义参数(在本例中是同一个页面),但是新的$helper->getLoginUrl不允许添加参数。以前我看到下一个参数可以用来存储字符串,但现在它被删除了。 似乎我也无法在会话中添加自定义参数。 有什么方法可以达到我的目的吗 <?php require '../facebooksrc/autoload.php'; $userdata='/me?fields=name,first_name,last_name,email,g
<?php
require '../facebooksrc/autoload.php';
$userdata='/me?fields=name,first_name,last_name,email,gender,location,birthday';
$permissions = ['email, user_location, publish_actions, user_birthday'];
$fb = new Facebook\Facebook([
'app_id' => $appid,
'app_secret' => $appsecret,
'default_graph_version' => 'v2.5',
]);
$helper = $fb->getRedirectLoginHelper();
$_SESSION['FBRLH_state']=$_GET['state'];
try {
if (isset($_SESSION['facebook_access_token'])) {
$accessToken = $_SESSION['facebook_access_token'];
} else {
$accessToken = $helper->getAccessToken();
}
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
if (isset($_SESSION['facebook_access_token'])) {
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
} else {
// getting short-lived access token
$_SESSION['facebook_access_token'] = (string) $accessToken;
// OAuth 2.0 client handler
$oAuth2Client = $fb->getOAuth2Client();
// Exchanges a short-lived access token for a long-lived one
//$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
//$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
// setting default access token to be used in script
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
// redirect the user back to the same page if it has "code" GET variable
if (isset($_GET['code'])) {
header('Location: ./');
}
// getting basic info about user
try {
$profile_request = $fb->get($userdata);
$profile = $profile_request->getGraphNode()->asArray();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$firstname=$profile["first_name"];
$lastname=$profile["last_name"];
// MY INSERT QUERY
} else {
$url="myurl";
$loginUrl = $helper->getLoginUrl($url, $permissions);
//REDIRECT
header("Location: $loginUrl");
}
“但是新的$helper->getLoginUrl不允许添加参数”-它允许您指定要重定向到的URL,那么将参数附加到该…的查询字符串中的问题在哪里呢?谢谢,它起到了作用。我认为GETLogiNURL不会像谷歌那样考虑安全性原因的“.PARAM=测试”。“但是新的$Helper-> GETLogin URL不允许添加参数”——它允许您指定重定向到的URL,因此将参数附加到那个查询字符串的问题在哪里?谢谢,它起作用了。我认为GETLogiNURL不会像谷歌那样考虑安全性原因的“.PARAM=测试”。