Php Facebook需要iFrame应用程序中的_login()
我对iframe应用程序有严重的问题。我需要使用许多外部JS库和其他动态stuf,所以FMBL应用程序无法完成。当我调用require_login()时,当尚未安装应用程序时,我会看到应用程序安装对话框,这是正常的。但在授权之后,应用程序进入一个无休止的重定向循环,其中包含参数,如auth_token、installed等等。昨天我设法修好了,但今天又坏了。。。FB到底怎么了?找到一个解决方案让我发疯,在网上找到的解决方案似乎没有一个不起作用 到目前为止,我试过: (2010年3月7日!) 以上都不起作用。。。根据这些和一些FB文档: 我的示例测试文件如下所示:Php Facebook需要iFrame应用程序中的_login(),php,api,facebook,iframe,kohana,Php,Api,Facebook,Iframe,Kohana,我对iframe应用程序有严重的问题。我需要使用许多外部JS库和其他动态stuf,所以FMBL应用程序无法完成。当我调用require_login()时,当尚未安装应用程序时,我会看到应用程序安装对话框,这是正常的。但在授权之后,应用程序进入一个无休止的重定向循环,其中包含参数,如auth_token、installed等等。昨天我设法修好了,但今天又坏了。。。FB到底怎么了?找到一个解决方案让我发疯,在网上找到的解决方案似乎没有一个不起作用 到目前为止,我试过: (2010年3月7日!)
<?php
//Link in library.
require_once '../application/vendor/Facebook/facebook.php';
//Authentication Keys
$appapikey = 'XXXX';
$appsecret = 'XXXX';
//Construct the class
$facebook = new Facebook($appapikey, $appsecret);
//Require login
$user_id = $facebook->require_login();
?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title></title>
</head>
<body>
<script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
This is you: <fb:name uid="<?php echo $user_id?>"></fb:name>
<?php var_dump($facebook->$this->facebook->api_client->friends_get())?>
<script type="text/javascript">
FB_RequireFeatures(["XFBML"], function(){
FB.Facebook.init("<?=$appapikey?>", "xd_receiver.html");
});
</script>
</body>
</html>
这是你:
跨域接收器页
我如何让它工作
我正在使用Kohana框架来实现这一点,并且已经在facebook php库中将标题(“位置”)替换为url::redirect()。您似乎在代码中使用了一些受限标记。你有没有试过把它们去掉
如果您想使用这些标记(
例如),请将其作为iframe应用程序而不是fbml…您正在查看的许多教程都非常过时。Facebook API和伴随而来的SDK变化相当迅速,虽然这并不意味着不可能用“旧”的方式做事,但这些方式更有可能被破坏、弃用、删除,或者没有那么好的文档记录
要获得更好的支持,请尝试升级到最新的PHP SDK:
然后,您可以使用此示例作为您尝试执行的操作的基础:
它向用户显示一个登录链接,但如果您处于要强制登录的上下文中,只向登录的用户显示内容(模仿旧的要求\u登录
),则可以替换:
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
与:
它是一个iframe应用程序。我尝试在iframe内部调用require_login,然后在Facebook外部重定向到我服务器上的应用程序,并以URI中带有auth_token变量的无休止循环结束。我也试着使用FBML应用程序,将iframe放在画布上,但流程是一样的。
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
// Get logout URL, or redirect user to login URL
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
header('Location: ' . $facebook->getLoginUrl()) ;
}