Извлечение пользователей Facebook, которым нравится URL / веб-страница, с помощью Open Graph - PullRequest
13 голосов
/ 02 февраля 2011

Есть ли способ получить список пользователей 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 / лайки (гденомер - это идентификатор домена, взятый из аналитики 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 ответ ниже) по-прежнему выдает пустой список лайков (второй запрос никогда не возвращается):

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 ]

5 голосов
/ 02 февраля 2011

FQL Должен сделать свое дело.

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

Вот ссылка.

Общая информация о FQL.

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

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

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

РЕДАКТИРОВАТЬ: Чтобы получить URL объекта, вы должны запросить эту таблицу, используя fql .

2 голосов
/ 16 сентября 2011

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

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

...