Php facebook应用程序在facebook页面内获得身份验证
我有一个facebook页面 我已经在页面选项卡中构建了一个应用程序 该应用程序与原始url配合良好 它从facebook获得登录名并返回url 如何在不更改“iframe内部”url的情况下从用户处获得授权Php facebook应用程序在facebook页面内获得身份验证,php,facebook,facebook-apps,Php,Facebook,Facebook Apps,我有一个facebook页面 我已经在页面选项卡中构建了一个应用程序 该应用程序与原始url配合良好 它从facebook获得登录名并返回url 如何在不更改“iframe内部”url的情况下从用户处获得授权 require_once(“facebook.php”); $facebook=新的facebook(数组)( “appId”=>“App_id”, “秘密”=>“秘密”); $current_user=$facebook->getUser(); $params=array('scope'
require_once(“facebook.php”);
$facebook=新的facebook(数组)(
“appId”=>“App_id”,
“秘密”=>“秘密”);
$current_user=$facebook->getUser();
$params=array('scope'=>'email,user_likes,user_friends');
如果($current_user){
试一试{
$expiration=time()+172800;
$cookie_value=$current_user.。$expiration;
setcookie('fbid',$cookie_值,$expiration,“/”);
回声'
window.location=“like.php”;
';
}捕获(FacebookApiException$e){
$login\u url=$facebook->getLoginUrl($params);
回声'
window.location=“”.$login_url.”;
';
出口
错误日志($e->getType());
错误日志($e->getMessage());
}
}否则{
$login\u url=$facebook->getLoginUrl($params);
回声'
window.location=“”.$login_url.”;
';
出口
}
创建facebook选项卡应用程序而不是web应用程序
并使用JSSDK创建一个facebook标签应用程序,而不是web应用程序
并使用
JS-SDK
如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的FB.login
方法。这不需要重定向到不同的URL,但在一个简单的覆盖中显示登录对话框–更好的用户体验。如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的FB.login
方法。这不需要重定向到不同的URL,但在一个简单的覆盖中显示登录对话框–更好的用户体验。如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的FB.login
方法。这不需要重定向到不同的URL,而是在一个简单的覆盖层中显示登录对话框,用户体验更佳。
require_once("facebook.php");
$facebook = new Facebook(array(
'appId' => 'App_id',
'secret' => 'Secret'));
$current_user = $facebook->getUser();
$params = array('scope' =>'email,user_likes,user_friends');
if ($current_user) {
try {
$expiration = time() + 172800;
$cookie_value = $current_user . '|' . $expiration;
setcookie('fbid', $cookie_value, $expiration , "/");
echo '<script type="text/javascript">
window.location = "like.php";
</script>';
} catch (FacebookApiException $e) {
$login_url = $facebook->getLoginUrl($params);
echo '<script type="text/javascript">
window.location = "' . $login_url . '";
</script>';
exit;
error_log($e->getType());
error_log($e->getMessage());
}
} else {
$login_url = $facebook->getLoginUrl($params);
echo '<script type="text/javascript">
window.location = "'.$login_url.'";
</script>';
exit;
}