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

Sam*_*ang 13 facebook facebook-fql opengraph facebook-graph-api

有没有办法检索在外部网站上点击了类似按钮的Facebook用户列表?

  • 例如,有一个域example.com已通过Facebook Insights确认属于fbUser1(使用OG元标记).
  • 某处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": [

   ]
}
Run Code Online (Sandbox Code Playgroud)

我还尝试从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);
        })
    });
});
Run Code Online (Sandbox Code Playgroud)

t0m*_*mgs 5

FQL应该做的伎俩.

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

链接在这里.

关于FQL的一些一般信息.

以这种方式使用JavaScript SDK启动FQL .

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

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

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


小智 2

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

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