通过Open Graph检索喜欢URL /网页的Facebook用户

时间:2011-02-02 15:38:47

标签: facebook facebook-graph-api facebook-fql opengraph

有没有办法检索点击外部网站上的“赞”按钮的Facebook用户列表?

  • E.g。有一个域 example.com 已通过Facebook Insights确认属于 fbUser1 using OG meta tags)。
  • example.com 的某个地方,有一个页面包含多个类似XFBL的按钮,每个按钮指向 example.com 上的另一个特定网址,例如 example.com/xyz example.com/abc

我想要的是喜欢 example.com/xyz 的用户列表以及喜欢 example.com/abc 的用户列表。

我的直观方法是查看 graph.facebook.com/123456789/likes (其中数字是从FB洞察中获取的域的ID),但这总是返回一个空数据集:

{
   "data": [

   ]
}

我还尝试从https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APPID&client_secret=APPSECRET获取OAuth访问令牌(其中 APPID APPSECRET 来自FB应用程序,该应用程序被标记为拥有使用OG元标记的域名,但这没有区别。

我也对非OpenGraph(即JS SDK,FQL等)解决方案感兴趣。

编辑:使用以下代码(根据下面的WideBladeanswer)仍然会给我一个空的列表(第二个查询永远不会返回):< / p>

var objectsQuery = "select id from object_url where url in ('http://example.com/xyz', 'http://example.com/abc', 'http://example.com/123')";
var likesQuery = "select object_id from like where object_id = {0}";

FB.Data.query(objectsQuery).wait(function (objectRows) {
    console.log(objectRows);

    FB.Array.forEach(objectRows, function (objectRow) {
        FB.Data.query(likesQuery, objectRow.object_id).wait(function (likeRows) {
            console.log(likeRows);
        })
    });
});

2 个答案:

答案 0 :(得分:5)

FQL应该做的伎俩。

$facebook->api_client->fql_query('SELECT user_id FROM like WHERE object_id="OBJECTID"');

Here is the link.

Some general info about FQL.

使用JavaScript SDK in this way.

启动FQL

如果您可以发布一些示例代码 - 我可以尝试提供一些更具体的帮助。

应该做一个注释 - 一旦你有了用户ID,就可以查询名称并将它们列入清单。

编辑:要获取对象的网址,您应该query this table using fql

答案 1 :(得分:2)

这不可能。 Facebook不允许您查询喜欢某个页面的人的特定用户ID。这是出于隐私问题。

请参阅此页上的免责声明https://developers.facebook.com/docs/reference/fql/like/