Php Facebook在应用程序授权后重定向到画布url而不是画布页面
我得到了来自的帮助,了解当有人访问canvas页面但尚未授权该应用程序时,如何重定向到Facebook授权页面 现在,我希望在用户授权权限后,FB将重定向到画布页面()。但它正在重定向到画布url(.) 这是预期的还是我们可以做些什么来控制它。如何告诉API在授权后重定向到画布页面 现在我可以考虑使用$_服务器[HTTP\u REFERER]查看我是否来自授权页面,如果是,则再次将页面重定向到画布页面。但我希望有更好的方法来做 画布url代码:Php Facebook在应用程序授权后重定向到画布url而不是画布页面,php,facebook,facebook-canvas,Php,Facebook,Facebook Canvas,我得到了来自的帮助,了解当有人访问canvas页面但尚未授权该应用程序时,如何重定向到Facebook授权页面 现在,我希望在用户授权权限后,FB将重定向到画布页面()。但它正在重定向到画布url(.) 这是预期的还是我们可以做些什么来控制它。如何告诉API在授权后重定向到画布页面 现在我可以考虑使用$_服务器[HTTP\u REFERER]查看我是否来自授权页面,如果是,则再次将页面重定向到画布页面。但我希望有更好的方法来做 画布url代码: if (Config::$fbAvailalbe)
if (Config::$fbAvailalbe){ //see below how this variable is derived
echo "fb is available";
$facebook = new Facebook(array(
'appId' => Config::$appId,
'secret' => Config::$appSecret,
));
$user = $facebook->getUser();
if ($user) {
echo "app installed";
try {
// Proceed knowing you have a logged in user who's authenticated.
$profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if (!$user) {
echo " app not installed gonna redirect";
$scope = "scope=email,read_stream,read_friendlists,publish_stream";
$redirect = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => $scope
)
);
echo '<script>top.location="' . $redirect . '";</script>';
exit();
//header("Location: $redirect".$scope);
}
if ($profile){
$firstName = $profile['first_name'];
$sid = $profile['id'];
var_dump($profile);
}else{
echo "unable to get profile";
}
}else{
echo "fb unavailable, using dmmy";
$firstName = "Dummy Name";
$sid = Config::$testsid;
}
检查文档代码中有两个错误 错误#1: 错误#2: 根据文件(截至目前) 请求参数为“范围” 不确定“canvas”和“fbconnect”参数,这些参数可能会被忽略,因为它们不再受支持
$redirect = $facebook->getLoginUrl(
array(
'scope' => $scope,
'redirect_uri' => 'https://app.facebook.com/myapp'
)
);
我现在收到“发生错误,请稍后再试。”。它与过时的参数有关吗?没有“canvas”和“fbconnect”参数,所以看起来“req_perms”现在只是“scope”?我现在已经找出了确切的错误,并在您的答案中编辑了代码。一旦您接受我的编辑,我将接受此选项:)
$scope = "scope = email,read_stream,read_friendlists,publish_stream";
$redirect = $facebook->getLoginUrl(
array(
'scope' => $scope,
'redirect_uri' => 'https://app.facebook.com/myapp'
)
);