我尝试了几种方法,例如。 here没有运气。我正在使用他们的facebook php sdk。
现在发生的事情是,在获得身份验证后,应用会被重定向到我的网站。
<?php
require_once 'php-sdk/facebook.php';
$app_id = "***";
$app_secret = "***";
$facebook = new Facebook(array(
'appId'=> $app_id,
'secret' => $app_secret,
'cookie' => true
));
$user = $facebook->getUser();
if(!$user)
{
$auth_url = $facebook->getLoginUrl(array('scope' => 'email'));
echo("<script> top.location.href='" . $auth_url . "'</script>");
}
?>
我尝试用以下代码替换auth_url:
$auth_url = $facebook->getLoginUrl(array('scope' => 'email',
'redirect_uri' => 'http://apps.facebook.com/ridetogether'));
但提示告诉我redirect_url不归我所有:
Ride Together出错。请稍后再试。
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.
我还可以做些什么来重定向到Facebook内的画布应用程序?
答案 0 :(得分:1)
API错误代码:191 API错误说明:指定的URL不归应用程序所有 错误消息:redirect_uri无效:应用程序配置不允许给定URL。
您的命名空间/画布页面在您的应用程序设置中是否正确?您可能需要再次仔细检查。
答案 1 :(得分:0)
您需要在域中指定要重定向到的特定页面,例如
$params = array(
'scope' => 'email',
'redirect_uri' => $authPageURL,
);
$auth_url = $facebook->getLoginUrl($params);
然后该页面需要使用301重定向到您的画布URL。因此,创建一个名为auth.php的页面或其中包含此内容的页面
if(isset($_REQUEST['error_reason']))
{
header('Location: '.$auth_error_page);
}
else
{
header('Location: '.$FB_canvas_page);
}
然后使用该页面作为重定向URI。