Facebook开发 - 关于最佳方法的简单问题

时间:2011-09-24 02:15:15

标签: facebook

我是一名PHP开发人员,但对这个Facebook的东西来说是全新的,我感到很困惑。整个Apps vs Pages与粉丝页面术语让我疯狂。请帮忙!

我的客户要求:

1) Display Like button on a single web page

2) When Like button is clicked, content on the page is unlocked and displayed (PHP)

3) Future visits to the page detects that visitor already likes the page, and content remains  unlocked (PHP)

4) All updates to web page profile on FB will show on Likers' news feed

我的理解是,上面最简单的做法(3)是使用PHP SDK。但要做到这一点,我需要创建一个应用程序(以获取应用程序ID)。所以我创建了一个App。我喜欢我的FB个人资料中的应用程序。我的应用程序的更新将发布到我的新闻源。到目前为止,非常好。

但是,当我尝试实现PHP SDK时,只有在我首先向我的帐户授权应用程序时它才有效。有没有办法避免这个授权步骤只是为了一个简单的“喜欢”(我问,因为我喜欢在FB中喜欢应用程序时没有授权任何东西)?如果这种授权是不可避免的,那么有没有其他方法可以让我达到上述要求?

理想情况下,我只想使用“Pages”来做这个,而不是应用程序,但我相信我无法用页面实现(2)和(3),正确(记住一切都需要服务器端,所以没有JavaScript显示和隐藏图层等)?

我很感激任何指导。

感谢。

3 个答案:

答案 0 :(得分:0)

所以我假设我们在这里谈论的是一个Facebook标签 - 可以进入粉丝页面的520像素宽的应用程序?

如果没有,您将无法在没有权限的情况下实现这一目标。听起来这就是你所说的。

以下是可口可乐粉丝页面上的Facebook标签示例: enter image description here

在选项卡中,PHP SDK会告诉您用户是否是该页面的粉丝(不是该页面的应用程序)。您需要阅读已签名的请求 - 会有一个名为Page的参数,它会告诉您用户是否已经是粉丝(请参阅https://developers.facebook.com/docs/authentication/signed_request/)。无需授权即可获得此信息。

我通常会阅读所有这些并存储用户是否是布尔变量中的粉丝。然后在我的页面中,我会做这样的事情:

<?php if ($isFan):?>
  Content for fans here
<?php else:?>
  Content for non-fans here
<?php endif;?>

请记住,它只是告诉您用户是否是该页面的粉丝 - 例如,如果您在测试页面上设置应用程序,它会告诉您用户是否是该测试的粉丝页面与否,如果用户是您应用的粉丝,则不是。

答案 1 :(得分:0)

为了使用PHP SDK读取facebook用户喜欢的内容,您需要user_likes权限。但是,您可以通过在页面上的某个位置呈现类似按钮并检测按钮的颜色来破解某些内容,这意味着用户喜欢该页面。这可能是有问题的,因为跨域问题考虑到类似按钮呈现为iframe。

祝你好运!

答案 2 :(得分:0)

对于某些事情,您需要一个应用程序。就像限制访问内容一样,如果用户“喜欢”了某些内容。您需要自定义代码才能执行此操作。你不需要一个基本的“喜欢”按钮的应用程序,但你真的无法获得喜欢的任何统计数据。您可以将应用程序链接到网站,以便报告内容和推荐。如果您转到http://www.facebook.com/insights/,则可以将该应用与网站相关联,以便将洞察/报告结合起来。只需点击“您网站的见解”按钮即可。它确实需要验证。

那就是说,你的困惑是常态。应用程序,页面和粉丝页面几乎是一样的。它们都通过数字ID引用。页面和应用页面之间存在细微的功能差异。如果将应用程序配置为可以将其添加到任何页面。但是你不能将一个页面添加到另一个页面。

您可以使用FQL查询用户是否是您应用的粉丝,而不是您当前所在的网页。

Facebook控制新闻Feed中显示的内容。仅仅因为你发布到Feed,并不意味着它会显示。但是,如果您是网页和/或应用的管理员,则帖子将始终显示在您的Feed中。