13

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

  • 例如,有一个域example.com已通过Facebook Insights确认属于fbUser1使用 OG 元标记)。
  • example.com上的某个地方,有一个带有多个类似 XFBL 的按钮的页面,每个按钮都指向 example.com 上的另一个特定URL,例如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 访问令牌(其中APPIDAPPSECRET取自标记为拥有域的 FB 应用程序使用 OG 元标记),但这没有区别。

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

编辑:使用以下代码(根据WideBlade下面的回答)仍然给我一个空的喜欢列表(第二个查询永远不会返回):

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);
        })
    });
});
4

2 回答 2

5

FQL 应该可以解决问题。

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

链接在这里。

有关 FQL 的一些一般信息。

FQL 是使用 JavaScript SDK以这种方式启动的。

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

应该做一个注释——一旦你得到了用户 ID,你可以只查询名字并将它们放在一个列表中。

编辑:要获取对象的 URL,您应该使用 fql 查询此表

于 2011-02-02T16:24:04.147 回答
2

这是无法做到的。Facebook 不允许您查询喜欢某个页面的人的特定用户 ID。这是因为隐私问题。

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

于 2011-09-15T22:26:18.310 回答