'喜欢'使用Facebook Graph API的页面

Tom*_*lls 70 facebook facebook-like facebook-graph-api

使用Graph API我希望能够让授权用户"喜欢"一个页面.

我试着发布以下内容

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

我在JSON响应正文中收到HTTP错误500并伴有"无效的post_id参数".看起来/likes资源适合喜欢墙贴而不是页面.如何使用这个页面?

bka*_*aid 41

Facebook已经宣布支持使用官方内置的Like操作来喜欢Facebook之外的URL .您需要拥有publish_actions权限.图表网址为: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

但是,您目前无法使用此功能来浏览Facebook上的页面,因为文档说明:

对于未与Facebook身份验证集成的Facebook页面或网站,开发人员应继续使用Like按钮社交插件.

  • 如何从我喜欢的页面中找到OG_OBJECT_URL? (2认同)

Tam*_*ash 10

2016年6月更新

仍然不可能像使用Facebook API一样喜欢页面,如关于创建/更新/删除的/{user_id}/likes 文档页面中所述:

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

在以前的版本中,消息更清晰(参见下面的引用),但结果是相同的:它是不可能的.

2014年5月

/{user-id}/likes文档页面国家有关出版喜欢的 Facebook网页的:

您无法使用此边缘发布,因为无法通过任何API喜欢Facebook页面.如果您希望人们能够在您的应用中使用某个页面,则应使用"赞"按钮.

这是最明显和最明确的陈述,能够给我一个问题的答案.


小智 5

如果你想在facebook中的页面选项卡或画布页面中使用此功能(比如允许在一个相似的页面中喜欢页面),那么解决你的问题可能涉及Tom Wells在他对Luke的回复中建议的内容.您首先在页面上嵌入了if按钮的iframe版本,然后只需edge.create在JS中监听事件:

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

在回调中,您可以处理用户喜欢该页面时发生的事情,比如导航离开类似门页面或显示仅限喜欢的内容.

当用户单击iFrame like按钮时,您的JS代码应该接收该edge.create事件,假设iFrame配置为指向相关页面的URL.


Isr*_*ack 5

如果你的应用程序是一个开放的图形应用程序,现在你可以喜欢使用api,而不再需要按钮了.

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

  • 正如文档和BK的回答中所提到的,这不适用于Facebook页面,仅适用于其他对象 (5认同)

Luk*_*uke 3

我认为除了特定的合作伙伴网站(例如 yelp)之外,这是不允许的。原因是安全性,您可以在页面上放置一些 JavaScript,并让访问该页面的每个人在不知情的情况下“喜欢”它。

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

  • “点赞”(通过 iframe 或 fbml)不是一个应用程序,因此不需要额外的权限,所需的只是您登录到 Facebook。我仍在寻找一种不在 Facebook 托管的 iframe 中拥有自定义“Like”按钮的方法。 (4认同)
  • 事实并非如此——图形 API 通过要求用户明确授予对 facebook 应用程序的访问权限,利用访问令牌来防止此类安全问题。无论如何,我通过将 iframe 嵌入到他们的“点赞”按钮(开放图 api)的首选路线来解决这个问题。 (2认同)