Php Facebook应用程序风扇门显示非风扇

Php Facebook应用程序风扇门显示非风扇,php,facebook,facebook-apps,Php,Facebook,Facebook Apps,我已经完成了下面的工作,但即使是作为一名粉丝,它也只是在说“非粉丝”。 我上传了facebook.php文件,并添加了我认为正确的应用程序设置。 我做错了什么 我的应用程序设置如下: Canvas URL: http://www.mysite.com/myapp/ Secure Canvas URL: https://www.mysite.com/myapp/ Page Tab URL: http://www.mysite.com/myapp/index.php Secure Pag

我已经完成了下面的工作,但即使是作为一名粉丝,它也只是在说“非粉丝”。
我上传了facebook.php文件,并添加了我认为正确的应用程序设置。 我做错了什么

我的应用程序设置如下:

Canvas URL: http://www.mysite.com/myapp/  
Secure Canvas URL: https://www.mysite.com/myapp/  
Page Tab URL: http://www.mysite.com/myapp/index.php  
Secure Page Tab URL: https://www.mysite.com/myapp/index.php
<?php
require 'facebook.php';
//uploaded into same directory as index.php

$app_id = "myappid";
$app_secret = "myappsecret";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));

$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>my app</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />

<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setSize();
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize();
}
</script>

<base target='_blank' />
</head>

<body>

<div id="container">

<?php if ($like_status) { ?>
FAN
<?php } else { ?>
NON-FAN
<?php } ?>

</div>

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'myappid',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});

window.fbAsyncInit = function() {
FB.Canvas.setAutoResize();
}
</script>
<script>
FB.Event.subscribe('edge.create',
function(response){
top.location.href = 'myappurl';
});
</script>

</body>
</html>
我在服务器上对index.php文件进行了如下编码:

Canvas URL: http://www.mysite.com/myapp/  
Secure Canvas URL: https://www.mysite.com/myapp/  
Page Tab URL: http://www.mysite.com/myapp/index.php  
Secure Page Tab URL: https://www.mysite.com/myapp/index.php
<?php
require 'facebook.php';
//uploaded into same directory as index.php

$app_id = "myappid";
$app_secret = "myappsecret";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));

$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>my app</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />

<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setSize();
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize();
}
</script>

<base target='_blank' />
</head>

<body>

<div id="container">

<?php if ($like_status) { ?>
FAN
<?php } else { ?>
NON-FAN
<?php } ?>

</div>

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'myappid',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});

window.fbAsyncInit = function() {
FB.Canvas.setAutoResize();
}
</script>
<script>
FB.Event.subscribe('edge.create',
function(response){
top.location.href = 'myappurl';
});
</script>

</body>
</html>

我的应用程序
window.fbAsyninit=函数(){
FB.Canvas.setSize();
}
//做一些有时会调用sizeChangeCallback()的事情
函数sizeChangeCallback(){
FB.Canvas.setSize();
}
扇子
非风扇
FB.init({
appId:'myappid',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
window.fbAsyninit=函数(){
FB.Canvas.setAutoResize();
}
FB.Event.subscribe('edge.create',
功能(响应){
top.location.href='myappurl';
});
所描述的方法,通常用于找出用户是否是页面的粉丝


如果您想按自己的方式执行,请在为其分配一些值后提供
var\u dump($like\u status)

请记住,signed\u请求参数仅在第一页加载到iframe时可用–一旦您开始在应用程序中导航,将不再有signed\u请求。(因此,一旦获得签名请求或类似状态,就必须将其保存到会话f.e。)


如果即使在第一次加载时也没有获得任何数据,那么var_将转储$_请求变量的内容,以查看该值是否存在。如果是,那么你的应用程序机密很可能是错误的——因为如果Facebook::getSignedRequest无法通过使用应用程序机密计算正确的哈希值来验证已签名的请求,它将返回null。请仔细检查你的应用程序密码是否正确。

谢谢-我似乎找不到“OAuth 2.0 for Canvas”高级选项?如果我没记错,它现在默认打开(答案来自2011年初,当时可能没有为所有应用程序启用)var_dump($like_status);返回NULL:(尝试此方法时也是如此:我得到“未找到签名的请求!”:(好的,您在哪里测试它?因为只有在facebook上尝试它时,您才会得到签名的请求(在那里打开选项卡)经过三重检查,仍然没有运气-所有详细信息都100%正确。它只有一个页面要加载,index.php:/