Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将参数传递到Facebook登录回调_Php_Facebook_Session_Callback_Facebook Oauth - Fatal编程技术网

Php 将参数传递到Facebook登录回调

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

我有这个简单的facebook登录集成。 我需要向回调传递一个自定义参数(在本例中是同一个页面),但是新的$helper->getLoginUrl不允许添加参数。以前我看到下一个参数可以用来存储字符串,但现在它被删除了。 似乎我也无法在会话中添加自定义参数。 有什么方法可以达到我的目的吗

<?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=测试”。