2010-06-17 114 views
69

使用图形API我希望能够有一个授权用户“喜欢”一页一页。“喜欢”使用Facebook的图形API

我尝试发布以下

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

我也得到伴随JSON响应体“无效POST_ID参数” HTTP错误500。看起来像/likes资源适合喜欢墙贴而不是页面。我如何得到这个与页面一起工作?

回答

3

我相信这是不允许的,除了特定合作伙伴的网站,像狗吠。原因在于安全性,您可以在页面上放置一些JavaScript,并让所有访问该页面的所有人“在不知情的情况下访问”。

How do I "Like" a URL?在Facebook平台开发者论坛

+2

那么不是真的 - 图形API使应用的访问令牌来阻止这类安全问题的问用户明确授予访问Facebook应用程序。无论如何,我通过去facebook的首选路线嵌入一个iframe到他们喜欢的按钮来解决这个问题(打开图api)。 – 2010-07-06 08:27:37

+4

“Like”ing(通过iframe或fbml)不是应用程序,因此不需要额外的权限,只需要您登录Facebook。我仍然在寻找一种方法来让自定义的Like按钮不在Facebook托管的iframe中。 – Luke 2010-07-13 11:23:26

+0

卢克 - 我也是!让我们知道如果你找到一种方法来使自定义按钮(在我的情况下是Android API)喜欢页面或应用程序。 – 2011-07-24 18:44:34

5

如果你想在Facebook的内页选项卡或画布页面此功能(说以允许likegated页面内顺心的页面),一个工作,你身边能涉及汤姆威尔斯在回答卢克时的建议。你先嵌入他们的喜欢按钮的iframe版本的网页,然后简单地听你的JS的edge.create事件,像这样:

FB.Event.subscribe('edge.create', 
    function(response) { 
     alert('You liked the URL: ' + response); 
     // ... 
    } 
); 

在回调中,您可以处理与当用户发生了什么喜欢这个页面,比如像从类似页面的页面导航,或者显示只有喜欢的内容。

当用户点击iFrame like按钮时,您的JS代码应该会收到edge.create事件,假定iFrame被配置为指向相关页面的url。

+1

我认为OP在询问如何以编程方式进行此操作,也许作为通过自定义控件传递“喜欢”的一种方式。 – 2012-09-09 00:23:36

42

Facebook已经宣布通过官方built-in Like action喜欢URL的Facebook的外部支持。您需要拥有publish_actions权限。这个图表网址是: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

但是,你不能使用这个喜欢Facebook上的网页目前,作为documentation states

对于Facebook网页或网站,不与Facebook 认证系统整合,开发者应该继续使用Like按钮 社交插件。

+0

我不认为你可以像使用内置的阳离子那样喜欢页面。你可否确认? – AbhinavVinay 2012-07-03 19:53:52

+0

@AbhinavVinay这是正确的。我更新了答案。 – bkaid 2012-07-03 20:29:40

+0

是否有一个Facebook开发人员资源,说你不能在Facebook页面上使用内置的。不是说我不相信你,但我正试图理解为什么是这样。您是否在内建的类似文档页面上引用了此声明:“应用程序使用内置的Like操作,与任何Open Graph操作一样,需要提交并批准。对于Facebook页面或网站未与Facebook身份验证集成,开发人员应继续使用Like按钮社交插件。“? – 2012-09-13 14:32:28

9

更新2016年6月

它仍然无法像使用Facebook的API页面,大约创建/更新/删除在/{user_id}/likesdocumentation page说:

你无法在此端点上执行此操作。

在以前的版本中,消息更加清晰(请参见下面的引用),但结果是一样的:这是不可能的。

五月/{user-id}/likes文档页面国家有关Facebook网页的Publishing Likes

不能发布使用这个优势,因为是不可能喜欢一个Facebook页面通过任何API。如果你希望人们能够喜欢你的应用中的页面,你应该使用Like按钮。

这是最明显,最清晰的声明,能够给我一个问题的答案。

0

你可以像使用Facebook的API使用下面这段代码的对象ID的对象

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    //do you customisation post like here 
}]; 
相关问题