【问题标题】:facebook->getUser returns 0facebook->getUser 返回 0
【发布时间】:2011-09-22 23:47:26
【问题描述】:

我有一个 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{

}

【问题讨论】:

  • the Facebook Developers blog 提供的示例表明new Facebook() 行不包含关于 cookie 的行,这可能是问题吗?
  • 嘿,顺便说一句,那个应用程序密码不应该是 secret 吗?也许在论坛上公开发布它不是一个好主意?...
  • 它只是一个测试应用,所以我不介意

标签: php facebook


【解决方案1】:

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

// 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>

【讨论】:

    【解决方案2】:

    由于这是一个粉丝页面,您不需要调用 FQL 查询,因为 FQL 查询要求用户首先授权您的应用程序。 Facebook 将向您的 iframe 粉丝页面发送 signed_request 帖子参数。请参阅this answer,了解如何解码该signed_request 参数并检查他们是否是您页面的粉丝。

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2012-08-04
      • 1970-01-01
      相关资源
      最近更新 更多