Php 我如何允许我的Facebook游戏的用户授权应用程序而不使用;访问Facebook.com“;标志
我在这里遵循教程: 但我无法通过允许用户授权我的应用程序的第一步。应用程序位于,而画布URL处于 我通过PHP检查是否存在与用户的活动会话。如果它不存在,我将用户重定向到登录URL。以下是页面顶部的代码:Php 我如何允许我的Facebook游戏的用户授权应用程序而不使用;访问Facebook.com“;标志,php,session,facebook,Php,Session,Facebook,我在这里遵循教程: 但我无法通过允许用户授权我的应用程序的第一步。应用程序位于,而画布URL处于 我通过PHP检查是否存在与用户的活动会话。如果它不存在,我将用户重定向到登录URL。以下是页面顶部的代码: // Facebook library require 'src/facebook.php'; // Create our Application instance $facebook = new Facebook(array( 'appId' => 'xxxxxx',
// Facebook library
require 'src/facebook.php';
// Create our Application instance
$facebook = new Facebook(array(
'appId' => 'xxxxxx',
'secret' => 'xxxxxxxxxxxx',
'cookie' => true,
));
// Let's see if we have an active session
$session = $facebook->getSession();
$me = null;
// Session based API call.
if (!empty($session)) {
// Active session; let's try getting the user ID and info
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$logoutUrl = $facebook->getLogoutUrl();
print_r($user);
exit();
} else {
// There's no active session; let's generate one
$loginUrl = $facebook->getLoginUrl();
header('Location: ' . $loginUrl);
}
问题是,在访问时,我被带到一个屏幕上,屏幕上有蓝色的Facebook徽标和一个链接,上面写着“转到Facebook.com”
但是,如果我允许用户单击链接与Facebook连接,就像这样:
<a href="<?php echo $loginUrl ?>" target="_top">Connect</a>
…Facebook网站上会直接显示“允许/不允许”对话框,但如果我单击“允许”或“不允许”,它会直接进入我的画布页面(http://freelancer.xylotgames.com)而不是我更喜欢的嵌入式应用程序页面
我怎样才能让它工作?我看到应用程序/游戏使用弹出窗口而不是重定向。这是首选吗?如果是,我会怎么做?当NetTuts+教程很可能适用于其他人时,为什么它不适用于我呢?我更喜欢弹出式方法(或Facebook内部的iframe对话框),您可以使用以下方法打开:
- 常规HTML弹出窗口:
函数FB.login
- Iframe对话框:
函数FB.ui
对于你的重定向问题,我会在应用程序的配置中仔细检查URL。我遇到了这个问题。我认为你需要改变的是实际的重定向。您的登录URL正在iframe中加载,因为这就是标题所能做的。FB检测到这一点,并给你一个按钮,以帮助打破框架。如果您想跳过此操作,则需要将浏览器的顶层重定向到登录url 而不是
标题('Location:'。$loginUrl)代码>使用:
die("<script type='text/javascript'>top.location.href = '" . $loginUrl. "';</script>");
die(“top.location.href=””$loginUrl.“;”;
它非常适合我,我的应用程序具有完全无缝的登录和会话刷新功能。您甚至可以在会话已过期的ajax请求中吐出此消息,它将为您获得一个新会话。使用您的链接将其作为一个弹出窗口进行操作似乎效果很好。非常感谢你!