我正在开展一个项目。我希望用户使用facebook登录。但在facebook身份验证之后,我收到了这个错误:
应用程序配置不允许使用URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是App域之一的子域。
我在Google上搜索了很长时间,每当我得到这个答案时,我的Facebook应用程序域名可能存在问题。
我一次又一次地改变了我的fb应用程序,但每次我都得到同样的错误。
我的Facebook应用程序的一些设置是:
应用域名:superhitdomains.com
网站网址: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';
}
}
}
任何人都可以帮我解决我的代码有什么问题吗?
由于
答案 0 :(得分:0)
我认为可以安全地假设您的base_url().'social/handle_user_fb_login'
是用户重定向的无效网址。检查您的Facebook应用,确保base_url()
确实被提及为画布网址或网站网址。
这是Facebook强制执行的,以便他们自己的网站可以相应地重定向您,而不是直接将您发送给(其他)恶意网站。