2011-09-24 47 views
1

我是一个PHP开发人员,但对这个Facebook的东西是全新的,并且变得混乱。整个应用程序vs页面与粉丝页面术语使我疯狂。请帮忙!Facebook的发展 - 最好的方法简单的问题

我的客户的要求:

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内部的应用程序时授权任何东西)?如果这个授权是不可避免的,有没有其他的应用程序可以让我达到上述要求?理想情况下,我想只使用“页面”来做到这一点,而不是应用程序,但我相信我无法实现(2)和(3)页面,正确(记住所有需要的服务器端,所以没有JavaScript显示和隐藏层等)?

我将不胜感激任何指导。

谢谢。

回答

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;?> 

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

0

为了使用PHP SDK阅读Facebook用户喜欢的内容,您需要具有user_likes权限。然而,你可以通过在你的页面上渲染一个像按钮一样的东西,并检测按钮的颜色,这意味着用户喜欢这个页面。由于考虑到类似按钮呈现为iframe的跨域问题,这可能是有问题的。

祝你好运!

0

对于某些事情,你需要一个应用程序。就像限制对内容的访问一样,如果用户有“喜欢”的东西。你需要自定义代码来做到这一点。你不需要一个基本的“喜欢”按钮的应用程序,但你真的无法得到任何数据的喜欢。您可以将应用链接到网站,以便您可以报告内容和推介。如果您转到http://www.facebook.com/insights/,则可以将该应用与网站链接,以便将见解/报告结合起来。只需点击“Insights for your Website”按钮即可。它确实需要验证。

这就是说,你的困惑是常态。应用程序,页面和粉丝页面几乎是一回事。它们全都通过数字ID来引用。页面和应用程序页面之间存在细微的功能差异。如果已配置应用程序,则可以将该应用程序添加到任何页面。但是,您无法将页面添加到其他页面。

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

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