2011-02-02 10 views
13

Czy istnieje sposób na odzyskanie listy użytkowników Facebooka, którzy kliknęli przycisk podobny w zewnętrznej witrynie internetowej?Pobieranie użytkowników Facebooka, którzy podoba się URL/strona internetowa za pomocą Open Graph

  • E.g. istnieje domena przykladowa.com, która zostala potwierdzona przez Facebook Insights i nalezy do fbUser1 (using OG meta tags).
  • Gdzieś na stronie przyklad.com znajduje się strona z wieloma przyciskami podobnymi do XFBL, z których każdy wskazuje na inny określony adres URL pod adresem przyklad.com, np. example.com/xyz, example.com/abc itp

Co chciałbym dostać lista użytkowników, że podoba example.com/xyz i tych, którzy się podobało przyklad.com/abc.

Moje intuicyjne podejście byłoby spojrzeć na graph.facebook.com/123456789/likes (gdzie liczba jest identyfikatorem domeny pobranej ze spostrzeżeń FB), ale to zawsze zwraca pusty zbiór danych:

{ 
    "data": [ 

    ] 
} 

próbowałem zostały również coraz token dostępu OAuth z https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APPID&client_secret=APPSECRET (gdzie AppID i APPSECRET są pobierane z aplikacji FB, który jest znak ed jako posiadanie domeny za pomocą znaczników OG OG), ale to nie ma znaczenia.

Chciałbym również zainteresować rozwiązanie inne niż OpenGraph (tj. JS SDK, FQL itp.).

EDIT: Korzystanie poniższy kod (według WideBlade „s answer poniżej) wciąż daje mi pustą listę pokroju (drugie zapytanie nie zwraca):

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

Odpowiedz

5

FQL powinno załatwić sprawę.

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

Here is the link.

Some general info about FQL.

FQL jest inicjowana za pomocą JavaScript SDK, in this way.

Jeśli można zakładać niektóre próbki kodu mogę spróbować i dać trochę bardziej konkretną pomoc.

Należy zanotować - po uzyskaniu identyfikatora użytkownika można po prostu przetworzyć nazwy i umieścić je na liście.

EDYCJA: Aby uzyskać adres URL obiektu, powinieneś uzyskać query this table using fql.

+0

Piękne, dzięki. Jak uzyskać ID_OBIEKTORA dla zewnętrznego adresu URL, np. Example.com/xyz? –

+1

Przyjmuję, jak tylko odpowiedź odpowie na pytanie. –

+0

Jeszcze raz dziękuję, przyjęta jako oczywiście poprawna. Jednak przy użyciu JS SDK i FQL lista ulubionych jest wciąż pusta. Zobacz edycję próbki. –

Powiązane problemy