像使用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 }];