为我网站上的任意元素创建“喜欢”按钮,并回读状态 - 可能吗?

Creating "Like" buttons for arbitrary elements on my site, and reading back the status - possible?

提问人:Pekka 提问时间:8/19/2010 最后编辑:CommunityPekka 更新时间:8/23/2010 访问量:897

问:

我是 Facebook 编程的新手,作为这个问题的后续,我想知道以下情况是否可行。

我在网站上收集了一系列活动。我从几个 RSS 提要中获取它们,并且可以完全自由地输出它们 - 例如作为单个页面,因此每个事件都有一个永久链接。

我想要

  1. 为每个事件创建一个 Facebook“赞”按钮,而无需以任何方式将它们输入到 Facebook 系统中

  2. 通过 JavaScript 或在服务器端回读这些事件中任何一个事件的当前用户的“喜欢”状态,以便我可以在“我喜欢的事件”列表中显示这些事件。重要的是,我需要能够稍后 = 在后续页面请求中读取状态,而不仅仅是在用户单击“喜欢”按钮的那一刻。

@karim79的答案确实回答了第一部分,但还不是第二部分。

此页面包含创建按钮所需的所有信息: 社交插件 > 喜欢按钮 当有人注册时,还有一个 FBML 事件可以做出反应。但这仍然无法让我检查回访用户的“喜欢”状态。

有什么办法可以做到吗?

PHP 脸书 FBML

评论

1赞 Gordon 8/19/2010
(相关)openlike.org
0赞 karim79 8/19/2010
我对你的第二点有点困惑:“回读当前用户对任何一个事件的”喜欢“状态”。你的意图仅仅是向用户表明他/她已经“喜欢”了它吗?
0赞 Pekka 8/19/2010
@karim79我想滥用“喜欢”功能作为一种外部存储系统,并在我网站上的单独列表中显示用户标记为“喜欢”的事件(“您标记为有趣的即将发生的事件”)。可以想象,由于隐私问题,这是不可能的——我不知道。
0赞 GoalieGuy6 8/27/2010
我不确定你是否能够从FaceBook获得类似的状态。我首先想到的是,每当用户单击其中一个类似的按钮时,使用 javascript onclick 事件存储在数据库中。

答:

13赞 karim79 8/19/2010 #1

为您的网站自动生成“喜欢”链接的一种脑死亡方法(我最近实现了 - 所以我知道有效)是简单地生成“href”参数,该参数(Facebook的)like.php从iframe源读取。只需使用他们的小部件构建 iframe 代码,并使用 PHP 来动态化参数:href

<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode($url); ?>%2F&amp;layout=button_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:75px; height:21px;" allowTransparency="true"></iframe>

您可以在有限的范围内对其进行自定义,只需查看按钮创建小部件正下方的属性列表即可。

使用 fbml(我懒得合并,并且由于我不得不包含另一个库而有点不情愿):

<fb:like width="200" show_faces="no" href="<?php echo $url; ?>"></fb:like>

这里有一个简洁的例子列表:http://fbrell.com/xfbml/fb:like

评论

1赞 Pekka 8/19/2010
干杯,我喜欢脑死亡的方式:)对于创建部分来说,这是件好事。
1赞 karim79 8/19/2010
@Pekka - 对于第二部分,我认为您需要与一些 JS 结合使用以挂接到事件 (developers.facebook.com/docs/reference/javascript/...) 以将当前用户/单击的 eventID 存储到您的数据库中,但我不确定目前具体如何。我正在努力,因为我可以使用这个:)FB.Event.subscribeedge.create
0赞 Pekka 8/19/2010
@karim感谢您提供的信息!这看起来是一个可行的选择。我今天将无法处理此事 - 如果您设法找到更多详细信息,我将不胜感激。
0赞 Pekka 8/27/2010
授予赏金:事实上,捕捉 onclick 事件似乎是做到这一点的唯一方法——可悲的是,这对我来说还不够,因为我无处可去存储这种状态。但是,似乎不可能做任何其他方式!
0赞 karim79 8/27/2010
@Pekka - Hoooray!我的第一个赏金!<打开啤酒> :)