当我尝试使用我为Facebook创建的应用时,我一直收到此错误。当我进入应用程序的URL时,它会将我带到登录页面,但是当我登录时,会出现一个弹出框,显示错误。
App Not Setup:此应用的开发者尚未设置此应用 适合Facebook登录。
每次点击确定,它都会重新加载弹出窗口。
我已经将satatus更改为Live in status并在我的仪表板中查看。
当我在Facebook上登录我的帐户时,它运行正常,但我想这是因为我在仪表板上设置为应用程序的管理员。
但是其他用户遇到了上述问题。
使用的代码:
require_once('facebook-php-sdk/src/facebook.php');
$facebook= new Facebook(array(
'appId' => $this->config->item('app_id'),
'secret' => $this->config->item('app_secret'),
'allowSignedRequest' => true,
));
$_REQUEST += $_GET;
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email');
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$login_url = $facebook->getLoginUrl(array(
'scope' => 'email'
));
redirect($login_url, 'refresh');
}
这段代码在我的codeigniter应用程序的控制器中,我构建了应用程序。
我该如何解决这个问题?
更新
在我将应用程序添加为画布应用程序后,此错误似乎消失了,但仍然存在问题。
我添加了Facebook应用平台,并输入了画布网址,安全画布网址等。
当我在画布页面https://apps.facebook.com/MyApp/
转到应用程序时 - 它可以正常工作,因为我是app app管理员。
但是,当外部用户转到画布页面时,它只是保持空白,但如果用户转到画布URL http://apps.mydomain.com/MyAPP
,则应用程序会询问他们的权限,并且可以正常用作网站。
对于画布页面上的用户,它只是空白。为什么画布页面没有请求许可?
请帮助。
编辑:
require_once('facebook-php-sdk/src/facebook.php');
$facebook= new Facebook(array(
'appId' => $this->config->item('app_id'),
'secret' => $this->config->item('app_secret'),
'allowSignedRequest' => true,
));
$_REQUEST += $_GET;
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email');
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$login_url = $facebook->getLoginUrl(array(
'scope' => 'email'
));
require_once('facebook-php-sdk/src/facebook.php');
$facebook= new Facebook(array(
'appId' => $this->config->item('app_id'),
'secret' => $this->config->item('app_secret'),
'allowSignedRequest' => true,
));
$_REQUEST += $_GET;
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email');
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$login_url = $facebook->getLoginUrl(array(
'scope' => 'email'
));
echo("<script> top.location.href='" . $login_url . "'</script>");
}
答案 0 :(得分:0)
为什么画布页面不会要求许可?
因为你在iframe中重定向,但是FB登录对话框不希望显示在(i(帧)中 - 显而易见的原因,这会导致大量的网络钓鱼,因为用户应该看到他们输入登录凭据的页面实际上也是真正的FB网站。
所以你必须通过JavaScript在顶层窗口实例中重定向:
top.location.href = '…';