Php 用于在Codeigniter中将选项卡添加到页面OAuth的Facebook应用程序

Php 用于在Codeigniter中将选项卡添加到页面OAuth的Facebook应用程序,php,codeigniter,facebook-graph-api,facebook,facebook-oauth,Php,Codeigniter,Facebook Graph Api,Facebook,Facebook Oauth,我正在创建一个facebook应用程序,用于在我的facebook页面上添加选项卡。我使用Codeigniter框架来实现这一点。我需要访问一些用户信息-电子邮件,教育,在我的应用程序的特定页面等。因此,我只需要在该页面中进行身份验证并获取访问令牌。在我这样做的尝试中,我能够对用户进行身份验证,但无法获取facebook oauth发送的代码,我需要该代码来获取访问令牌。我认为这是因为Codeigniter修改了get数组。我尝试了一些让get数组工作的方法,但仍然无法获取代码内容 你能给我一个

我正在创建一个facebook应用程序,用于在我的facebook页面上添加选项卡。我使用Codeigniter框架来实现这一点。我需要访问一些用户信息-电子邮件,教育,在我的应用程序的特定页面等。因此,我只需要在该页面中进行身份验证并获取访问令牌。在我这样做的尝试中,我能够对用户进行身份验证,但无法获取facebook oauth发送的代码,我需要该代码来获取访问令牌。我认为这是因为Codeigniter修改了get数组。我尝试了一些让get数组工作的方法,但仍然无法获取代码内容

你能给我一个简单的方法来为我的应用程序中的用户获取oauth令牌吗。我试着搜索了很多次,但都没找到

到目前为止,这是我编写的代码:

$canvas_page = $page_url;
$signed_request = $_REQUEST["signed_request"];
$code = $this->input->get('code');
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

$auth_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page)."&scope=email,user_work_history,user_education_history";
  if (empty($data["user_id"])) {
        echo("<script> top.location.href='" . $auth_url . "'</script>");
  } else {
        echo ("Welcome User: " . $data["user_id"])."<br/>";
        $token_url = "https://graph.facebook.com/oauth/access_token?". "client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page). "&client_secret=" . $app_secret . "&code=" . $code;
        $a = file_get_contents($graph_url);
        var_dump($a);
  }
$canvas\u page=$page\u url;
$signed_request=$_request[“signed_request”];
$code=$this->input->get('code');
列表($encoded_sig,$payload)=分解('.',$signed_请求,2);
$data=json_解码(base64_解码(strtr($payload,'-'','+/')),true);
$auth_url=”https://www.facebook.com/dialog/oauth?client_id=" . $应用程序id。“&重定向_uri=”。urlencode($canvas\u page)。“&scope=电子邮件、用户工作历史、用户教育历史”;
if(空($data[“user\u id”])){
echo(“top.location.href=”。$auth_url。””;
}否则{
echo(“欢迎用户:”.$data[“用户id”)。“
”; $token_url=”https://graph.facebook.com/oauth/access_token?““client_id=”.$app_id.”和redirect_uri=“.urlencode($canvas_page)。“&client_secret=”.$app_secret.&code=.$code; $a=文件内容($graph\u url); var_dump($a); }

请给我一个简单的方法来完成OAuth。我想花更多的时间开发该应用程序,而不是试图找出OAuth。

您可以禁用GET的清理功能,但您可能不想这样做

作为一种快速而肮脏的解决方案,您可以执行以下操作:

parse_str($_SERVER['QUERY_STRING'], $args); // $args now contain GET parameters