Php facebook->;getUser返回0

Php facebook->;getUser返回0,php,facebook,Php,Facebook,我有一个Facebook粉丝页面,我想检查访问该页面的用户是否喜欢该页面以显示内容。当我以管理员身份登录,但当另一个帐户访问该页面时,facebook->getUser()始终返回0 require 'src/facebook.php'; $facebook = new Facebook(array( 'appId' => 'ID', 'secret' => 'HASH', 'cookie' => true, )); $user = $facebook->

我有一个Facebook粉丝页面,我想检查访问该页面的用户是否喜欢该页面以显示内容。当我以管理员身份登录,但当另一个帐户访问该页面时,
facebook->getUser()
始终返回0

require 'src/facebook.php';

$facebook = new Facebook(array(
  'appId' => 'ID',
  'secret' => 'HASH',
  'cookie' => true,
));

$user = $facebook->getUser();

//Page id

$page = '215010578537112';


$likeID = $facebook->api(array( 'method' => 'fql.query', 'query' =>
'SELECT uid  FROM page_fan WHERE uid =' . $user . 'AND page_id =' .$page ));

if ( $likeID ) {

}else{

}

由于这是一个风扇页面,您不需要调用FQL查询,因为FQL查询要求用户首先授权您的应用程序。Facebook将向您的iframe粉丝页面发送一个签名的_请求post参数。请参阅如何解码已签名的_请求参数,并检查它们是否是您页面的粉丝

试试这个版本,你不需要任何特殊的东西来检查他们是否喜欢你的页面:

// find out if the user likes the page or not
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

// content to show if they don't like the page
if (empty($data["page"]["liked"])) {
?>
<p>Not a fan</p>

<?php
// content to show if they do like the page
} else {
<div>Is a fan</div>
//找出用户是否喜欢该页面
$signed_request=$_request[“signed_request”];
列表($encoded_sig,$payload)=分解('.',$signed_请求,2);
$data=json_解码(base64_解码(strtr($payload,'-'','+/')),true);
//如果他们不喜欢该页面,则显示的内容
if(空($data[“page”][“liked”])){
?>
不喜欢


上提供的例子表明,
新Facebook()
行中没有关于cookie的行,这可能是问题所在吗?嘿,顺便问一下,应用程序机密不应该是机密的吗?也许在论坛上公开发布不是个好主意?…这只是一个测试应用程序,所以我不介意