Facebook身份验证/画布不显示

时间:2012-01-17 22:14:45

标签: php facebook authentication canvas

嗨,每次我直接去应用程序一切正常。然而,当我点击粉丝页面上的应用程序选项卡时,它在firefox和chrome中是空白的,但是它表示:此内容无法显示在框架中为了帮助保护您输入本网站的信息的安全性,此内容的发布者不允许它显示在框架中。

你可以尝试什么:     在新窗口中打开此内容

有谁知道为什么这不起作用?这是我的PHP顶部的PHP代码  画布页面。谢谢!

<?php 

$app_id = "181247898619054";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$my_url = "https://apps.facebook.com/wellnessiq/";
session_register();
session_start();
header('P3P: CP="CAO PSA OUR"');

if (!isset($_REQUEST["code"]))
{
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email&state="
. $_SESSION['state'];

echo("<script> top.location.href='" . $dialog_url . "'</script>");
exit;
}
$code = $_REQUEST['code'];
{
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&code=" . $code;

$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);

$graph_url = "https://graph.facebook.com/me?access_token=" 
. $params['access_token'];

$user = json_decode(file_get_contents($graph_url));
}

?>

1 个答案:

答案 0 :(得分:3)

我认为这可能与设置方式有关。我的猜测是你已经将粉丝页面应用程序的链接设置为facebook上的画布应用程序的URL。

例如https://apps.facebook.com/wellnessiq/

然后当您在Facebook中点击页面上的标签时,它实际上是在尝试使用另一个iFrame来加载其中的facebook。

尝试将您的网页标签网址更改为您网站的完整网址

例如www.example.com/canvas.php

如果不是这样的话,那么尝试发布更多信息,如果你可以