Извлеките пользователей Facebook, которые любят URL/веб-страницу через Open Graph

Есть ли способ получить список пользователей Facebook, которые нажали подобную кнопку на внешнем веб-сайте?

  • например. существует домен example.com, который был подтвержден с помощью Facebook Insights, чтобы принадлежать fbUser1 (с использованием метатег OG).
  • Где-то на example.com есть страница с несколькими кнопками XFBL, каждая из которых указывает на другой конкретный URL-адрес на example.com, например. example.com/xyz, example.com/abc и т.д.

Я бы хотел получить список пользователей, которым понравился example.com/xyz и тех, кому понравился example.com/abc.

Мой интуитивный подход состоял бы в том, чтобы взглянуть на graph.facebook.com/123456789/likes (где число - это идентификатор домена, взятого из данных FB), но это всегда возвращает пустой набор данных

{
   "data": [

   ]
}

Я также попытался получить токен доступа OAuth от https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APPID&client_secret=APPSECRET (где APPID и APPSECRET берутся из приложения FB, которое отмеченные как владеющие доменом, используя метатеги OG), но это не имеет значения.

Меня также интересовал бы решение без OpenGraph (то есть JS SDK, FQL и т.д.).

EDIT. Используя следующий код (в соответствии с WideBlade answer ниже) по-прежнему дает мне пустой список симпатий (второй запрос никогда не возвращается):

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

Ответы

Ответ 1

Это невозможно. Facebook не позволяет запрашивать определенный идентификатор пользователя, которому понравилась определенная страница. Это связано с проблемами конфиденциальности.

См. отказ от ответственности на этой странице https://developers.facebook.com/docs/reference/fql/like/

Ответ 2

FQL Должен сделать трюк.

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

Вот ссылка.

Некоторая общая информация о FQL.

FQL запускается с использованием SDK JavaScript, таким образом.

Если вы можете опубликовать некоторый пример кода, я могу попробовать и дать более конкретную помощь.

Следует отметить, что после того, как вы получили идентификаторы пользователя, вы можете просто запросить имена и получить их в списке.

EDIT: Чтобы получить URL-адрес объекта, вы должны запросить эту таблицу с помощью fql.