0

我正在做一个项目。我希望用户使用 facebook 登录。但在 facebook 身份验证后,我收到此错误:

应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。

我在谷歌上搜索了很长时间,每次我得到这个答案时,我的 facebook 应用程序域名可能有问题。

我一次又一次地更改了我的 fb 应用程序,但每次我得到同样的错误。

我的 facebook 应用程序的一些设置是:

应用程序域:superhitdomains.com
站点 URL: http
://superhitdomains.com 我的查看页面是:

用脸书登录

我的控制器是:

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Social extends CI_Controller 
{
    public function __construct()
    {
        parent::__construct();
        parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('Facebook', $config);
    }

    public function fb_request()
    {
       $userId = $this->facebook->getUser();
       if($userId == 0)
       {
          $data = array(
            'redirect_uri'=> base_url().'social/handle_user_fb_login',
            'scope'=>'email'
          );
          redirect($this->facebook->getLoginUrl($data));
          //print_r($data); exit;
       }
       else 
       {
         // Get user's data and print it
         $user = $this->facebook->api('/me');
         print_r($user);    
       }
    }

    public function handle_user_fb_login()
    {
        $userId = $this->facebook->getUser();
        if($userId !=0)
        {
            $user = $this->facebook->api('/me');
            print_r($user); 
        }
        else
        {
            echo 'could not connected with facebook';
        }
    }
}

谁能帮助我的代码有什么问题?

谢谢

4

1 回答 1

0

我认为可以安全地假设您base_url().'social/handle_user_fb_login'是用于重定向用户的无效 url。检查您的 Facebook 应用程序并确保它base_url()确实被提及为画布 url 或网站 url。

这是 Facebook 强制执行的,以便他们自己的网站可以相应地重定向您,而不是直接将您发送到(其他)恶意网站。

于 2013-09-09T12:24:43.130 回答