2011-01-31 48 views
8

因此,我一直在玩Facebook的按钮,但我遇到了问题。我有一个关于我在这里做一些慈善工作的Facebook页面:如何“喜欢”外部的Facebook内容

http://www.facebook.com/Adam.Holmes.Climbs.Kilimanjaro

我也有一个网页上有几乎相同的信息。在这个网页中,我有一个像Facebook一样的按钮,以便用户可以像这里看到的页面:

http://developers.facebook.com/docs/reference/plugins/like/

现在我的问题是与一个单独的按钮。在facebook页面中,我添加了一些用户喜欢并评论的图像。现在我已经在我的网页上放置了相同的图像,我想为每个图像添加一个类似facebook的按钮,因此显示所有喜欢该图像在Facebook上。我已经插入了许多不同的链接到类似的按钮,但没有一个似乎工作。我试过a)页面的网址。 b)图像的网址。 c)随机位和蝙蝠操纵不同的网址。

我试图查看JavaScript源代码,但对我的理解来说太复杂了。我知道函数fc_click()是从调用另一个函数的按钮中调用的,不久之后,我迷失了方向,而且还没有找到使用哪个url。

所以我想我的问题是,什么是在“喜欢”脚本中放置的网址,以便我可以使用类似的按钮在Facebook外部?

如果需要更多信息,请说出来。

非常感谢你:)


更新:我一直在尝试各种不同组合的或网址,仍然没有运气。 “Like”按钮之一的对象是图中的对象,即Here is the object I want to like.,但这些链接均不起作用。也许Facebook限制了这一点,因为使用网页的网址很简单,并且工作正常,而不是单个项目。

我可以再次补充一点,我需要将链接放置在标签中,而不仅仅是为了能够检索喜欢和评论等的计数。我还在facebook开发人员论坛here上启动了一个主题,但是没有人回答过解决方案。

再次感谢。


更新2: 正如所指出的“迈尔斯格雷”的代码在HTML实际上呈现为:

我不知道是否有一种方法从外部页面访问表单,因为它没有正确的this引用。是否有人能够阐明这是否可以完成,如果是的话,如何?当然,如果可以这样做,正确引用this将允许我在外部喜欢内容。

+0

你使用OpenGraph吗? – 2011-01-31 16:23:09

+0

不,我只是使用标签。 – 2011-01-31 16:28:41

+0

至于你的第二次更新`this`只是`window`对象,所以如果你可以抓住相关的窗口对象,那就好了。 – Raynos 2011-02-08 07:23:33

回答

1

恐怕你想要什么是不是可能。快速 “证据”:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="http://www.facebook.com/platform" show_faces="true" width="450"></fb:like> 

这会工作得很好,但使用它的图形API的解释:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="https://graph.facebook.com/19292868552" show_faces="true" width="450"></fb:like> 

这样可不行!

我不认为你应该费心寻找一个“解决方法/黑客”或试图进行检查和调试Facebook上的照片页面,因为即使如果你没有找到一个方法来使用他们喜欢功能外部我很确定,会让你陷入与Facebook的法律问题!

现在我要做的是,监测用户“”喜欢“您网站上的照片,并在LIKE按钮下方有一个弹出窗口或DIV,以鼓励他去Facebook的照片页面以支持它(也喜欢它)呢!

FB.Event.subscribe('edge.create', function(response) { 
    // Encourage the user to support your cause in Facebook too! 
    $("div_with_a_link_to_the_photo_page_on_facebook").show(); 

    // or using a dialog or whatever effect you like 
    $("#facebook_support").dialog(); 
}); 

PS:我使用jQuery这里

而且实际上像Facebook这样的“对象”外,你需要的应用程序和一些

这可以通过使用edge.create事件中完成像我的回答here,但我认为你不想这样做。

1

我想指出的是,这是一个非常混乱的想法,而不是一个完整的解决方案。我会建议坐下并打开Facebook Docs一小会儿。

请看here。正如您所看到的,Facebook中的每个对象都是Graph API的一部分。因此,它拥有自己独特的ID属性。根据照片,你可以看看here,看到每张照片都有它自己的唯一ID。

所以,你需要做的,是从该特定页面每个网页加载时调用特定照片从具体专辑,正因为如此,你将能够把所有评论并喜欢在Facebook上收到这张照片。

我想说的最好的方法是关于initialize the JavaScript SDK,perform an FQL query关于你想要的具体picture,并获取数据。

现在,因为显示:由于facebook 不是有一个特殊的插件来显示外部网页上的照片,显示部分是棘手的部分。所有信息都在JSON对象中收到,您可以用任何您想要的方式显示该对象。我建议,为了让体验更具社交性,请在Graph API中为每张带有该照片ID的照片创建一个类似按钮。 Docs are here

1

AFAIK Facebook的使用以某种方式链接到与照片ID和专辑ID的photo.php内部统计计数器...

如果你看看源代码,你可以看到(喜欢它):

<label onclick="this.form.like.click();"><i class="img sp_29yryj sx_182771" title="Like this item"></i></label> 

并进一步沿(查看谁喜欢它的人):

<a href="/browse/?type=likes&amp;id=1516817795900" rel="dialog" ajaxify="/ajax/browser/dialog/?type=likes&amp;id=1516817795900" title="See people who like this item">16 people</a> 

如果你能以某种方式制定出什么网址是基于你应该排序的图片ID,TMK似乎的FB正在使用某种自定义库来喜欢图像的ID。

2

我不认为通过<fb:like>可以在一段不是页面的内容上获得Facebook按钮。为了测试这一点,我在我贴在墙上的照片上尝试了几件事。如你所想,没有任何网址可以工作。

这就是说,你可以建立自己喜欢的按钮。通过Graph API,您可以使用/me/feed从您自己的Feed中提取对象。最简单的事情可能是使用来自Feed的图像;如果您托管了图片,则需要将映射表重新映射到Feed上的对象。 Feed中的每个对象都会有一个Like计数器。

更新

重读后,它看起来像您不希望用户必须登录。图形API可以从服务器端调用。正如你所访问你自己的饲料,你只需要给你的应用的离线权限到自己的饲料,而当前用户将不必登录。

更新2

看来/POST_ID/likes只适用于帖子 - 我得到的“应用程序必须在白名单”上的其他任何东西。

0

使用类似插件:

<div class="fb-like" data-href="**http://graph.facebook.com/[object_id]**" data-send="false" data-width="270" data-show-faces="false" data-colorscheme="dark" data-font="arial"></div> 

(只是把自己的对象ID)。我的问题是,我无法弄清楚如何检测用户是否已经喜欢该对象而不登录到应用程序(不仅仅是登录到fb中)。

为此,您的应用需要extended_permissions,例如在这种情况下,它需要read_stream权限。一旦你有了,你可以用fql查询类似的表。