像使用Facebook Graph API的页面一样

使用Graph API我希望能有一个授权用户“喜欢”一个页面。

我尝试发布以下内容

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

我在JSON响应正文中得到了一个HTTP错误500,伴随着“无效的post_id参数”。 看起来像/likes资源适合喜欢墙上的post,而不是一个页面。 我如何得到这个工作与一个页面?

Facebook已经宣布支持通过使用官方内置的Like操作来访问Facebook以外的URL。 您需要拥有publish_actions权限。 图表url是: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN : https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

但是,您不能使用它来当前喜欢Facebook上的页面,如文档所述 :

对于未与Facebook身份validation集成的Facebook页面或网站,开发人员应继续使用Likebutton社交插件。

2016年6月更新

使用Facebook API的页面仍然无法使用,如/{user_id}/likes 文档页面中有关创build/更新/删除的内容所述:

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

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

2014年5月

/{user-id}/likes文档页面有关发布 Facebook页面喜欢的状态:

您无法使用此边缘进行发布,因为无法通过任何API访问Facebook页面 。 如果你希望人们能够喜欢你的应用中的页面,你应该使用Likebutton。

这是能够给我一个答案的最明显和最清楚的陈述。

如果你的应用程序是一个开放的graphics应用程序,现在你可以喜欢使用api,而不需要button了。

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

如果你想在facebook页面标签或canvas页面中使用这个function(比如允许喜欢页面内的页面),你可以参考汤姆·威尔斯(Tom Wells)在他对卢克的回复中提出的build议。 你首先在你的页面上embeddediframe版本的button,然后简单地在你的JS中监听edge.create事件,如下所示:

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

在callback中,您可以处理用户喜欢页面时发生的情况,比如从类似页面的页面导航,或者显示喜欢的内容。

当用户点击iFrame likebutton时,你的JS代码应该接收edge.create事件,假定iFrame被configuration为指向有问题的页面的url。

我相信这是不允许的,除了特定的合作伙伴网站,如yelp。 原因是安全性,你可以把一些JavaScript的网页,并让每个人访问该页面“喜欢”,而不用他们的知识。

请参阅我如何“喜欢”一个url? 在Facebook平台开发者论坛上

你可以使用下面的一段代码,使用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 }];