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 sdk getLoginUrl()方法不会重定向已登录的用户以授权我的应用_Php_Facebook_Codeigniter_Facebook Graph Api_Oauth - Fatal编程技术网

Php Facebook sdk getLoginUrl()方法不会重定向已登录的用户以授权我的应用

Php Facebook sdk getLoginUrl()方法不会重定向已登录的用户以授权我的应用,php,facebook,codeigniter,facebook-graph-api,oauth,Php,Facebook,Codeigniter,Facebook Graph Api,Oauth,我正在使用Facebook API在我的codeigniter应用程序上登录Facebook。除了用户已经登录到Facebook但从未授权过我的应用程序外,它似乎工作正常。我将他重定向到getLoginUrl(),这应该让他授权我的应用程序,但这从来没有发生过 我真的很迷路,一直在寻找解决方案,任何帮助都将不胜感激 以下是我在facebook登录时调用的索引函数单击: $data=array( 'redirect_uri' => '/facebookcon

我正在使用Facebook API在我的
codeigniter
应用程序上登录Facebook。除了用户已经登录到Facebook但从未授权过我的应用程序外,它似乎工作正常。我将他重定向到
getLoginUrl()
,这应该让他授权我的应用程序,但这从来没有发生过

我真的很迷路,一直在寻找解决方案,任何帮助都将不胜感激

以下是我在facebook登录时调用的索引函数单击:

 $data=array(
                'redirect_uri' => '/facebookcontroller/handle_facebook_login/',
                'scope' => 'publish_stream,email'
            );

            redirect($this->fbconnect->getLoginUrl($data));
我的
重定向uri
有效,我仔细检查了一下

因此,如果用户已登录,它将尝试将其重定向到
getloginurl()
,这将需要用户进行授权,但不会。它直接转到
重定向uri

您是否检查用户

    // Init the Facebook SDK
    $facebook = new Facebook(array(
           'appId'  => $app_id,
           'secret' => $app_secret,     
           'cookie' => true
    ));

    // Get the current user
    $user = $facebook->getUser();

if (!$user) {
        $loginUrl = $facebook->getLoginUrl(array(
            'scope' => $scope,
            'redirect_uri' => $app_url,
            ));

            echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    }
    else{        

    $user_profile = $facebook->api('/me');

    // STUFF
    }
//初始化Facebook SDK
$facebook=新的facebook(数组)(
“appId”=>$app\u id,
'secret'=>$app\u secret,
“cookie”=>true
));
//获取当前用户
$user=$facebook->getUser();
如果(!$user){
$loginUrl=$facebook->getLoginUrl(数组)(
'scope'=>$scope,
'重定向\u uri'=>$app\u url,
));
echo“top.location.href='$loginUrl';”;
}
否则{
$user_profile=$facebook->api('/me');
//东西
}

。你还试了什么?为我们发布一些代码:)好的,我发布了我的contoller的索引方法,我正在我的facebook帐户上测试,我之前已经授权了它,但是从我的数据库中删除了我所有的facebook信息。我试图请求用户信息,但它抛出了一个错误:无效或找不到证书颁发机构,使用捆绑信息值得一提的是,当它从facebook返回时,会带来两个变量:状态和代码。也许我需要对它做进一步的处理?好的。也许我想我知道怎么了。您已将自己的帐户授权给应用程序。你需要取消授权。facebook会给你一个访问令牌并自动设置。重定向后,您应该能够访问$facebook->api('/me');比如:echo“id:”$用户['id'];或$access_token=$facebook->getAccessToken();尝试清除cookie,然后用auth和其他东西重新开始。否则试着做他在另一个问题上所做的