2010-06-09 12 views
7

Korzystając z Facebooka Graph API, biorąc pod uwagę nazwę użytkownika xyz (zakładając, że uwierzytelniła moją witrynę), w jaki sposób mogę uzyskać listę wszystkich stron Facebooka, którymi administruje użytkownik?Facebook Graph API + Facebook Pages

Odpowiedz

0

@rmorrison - To nie jest wykres API chociaż. Za pomocą nowego "podobnego" dodatku możesz użyć tego adresu URL: h ttps: //graph.facebook.com/me/likes? Access_token = blah! lub h ttps: //graph.facebook.com/USER_ID/likes? access_token = blah!

+0

Nie szuka "polubień", szuka stron administrowanych przez użytkownika. –

+0

Czy wiesz, jak wykonać podobną akcję na stronie? – WoodenKitty

15

Obiekt accounts na obiekcie user mówi:

Strony Facebook posiadane przez bieżącego użytkownika. Jeśli przyznano uprawnienie manage_pages, to połączenie zapewnia również access_tokens, które mogą być używane do wysyłania zapytania do Graph API w imieniu strony.

http://developers.facebook.com/docs/reference/api/user

+0

Ooh to musi być nowe ... nigdy wcześniej nie zauważyłem tego połączenia! Chociaż nie jestem pewien, czy to właściwa odpowiedź. Możesz być administratorem na stronie, nie będąc "właścicielem". –

+0

Wygląda mi to na właściwą odpowiedź, zwraca wszystkie strony, na których jestem administratorem, nawet te, których sam nie stworzyłem. – dar

5

Po otrzymaniu token dostępu można uzyskać wszystkie szczegóły wykaz wszystkich stron facebook że użytkownik zarządza.

https://graph.facebook.com/[FACEBOOKUSERID]?metadata=1&access_token= 

Wyjście będzie wyglądać

{ 
    "name": "Facebook Developer Garage Austin - SXSW Edition", 
    "metadata": { 
     "connections": { 
     "feed": "http://graph.facebook.com/331218348435/feed", 
     "picture": "https://graph.facebook.com/331218348435/picture", 
     "invited": "https://graph.facebook.com/331218348435/invited", 
     "attending": "https://graph.facebook.com/331218348435/attending", 
     "maybe": "https://graph.facebook.com/331218348435/maybe", 
     "noreply": "https://graph.facebook.com/331218348435/noreply", 
     "declined": "https://graph.facebook.com/331218348435/declined" 
     } 
    } 
} 
+0

Widziałem tu twoje "metadane" przez przypadek, a na końcu znalazłem sposób na znalezienie połączeń z Obiektem Użytkownika - tylko nie można się zastanawiać, dlaczego wzmianki o tym zbiorze metadanych nigdzie nie można znaleźć na oficjalnych dokumentach fb (przynajmniej nie, jeśli nie wiesz, czego szukać). ty, chociaż mój problem był tylko zdalnie podłączony. – kontur

+0

Dobrze jest usłyszeć, że problem został rozwiązany. Witamy. – PrateekSaluja

0

FQL jest najlepszym sposobem, aby uzyskać stron użytkownika dla którego jest administratorem. Jak inni lubią użytkowników daje wszystkie strony, które lubi użytkownik.

1

Oto, czego używam. Działa idealnie

$pages = $facebook->api(array('method' => 'fql.query','query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.'')); 

foreach($pages as $k=>$v) { 
    echo 'page id#:'.$v['page_id'].'<br/>'; 
} 

To oczywiście po utworzeniu sesji dla użytkownika fb! Numer $uid będzie numerem identyfikacyjnym profilu konkretnego użytkownika Facebooka, do którego zwrócisz listę stron zarządzanych.

4

Użyj zapytania fql! To jest najlepszy sposób na uzyskanie stron, dla których użytkownik jest administratorem. Będziesz także mógł ograniczyć nazwy również. tj. strony z pustymi nazwami Przykładowe zapytanie fql, które zawiera również szczegóły strony.

SELECT page_id,page_url,name,pic_square FROM page WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid = " + **UserId** + ") and name!='' 

UserId - identyfikator administratora

UWAGA Metoda ta nie będzie działać z wersją 2.1 wykresu api jak FQL została zaniechana z tej wersji począwszy

0

Możesz uzyskać listę stron z prostego kliknięcia interfejsu API interfejsu Facebook Graph.

https://graph.facebook.com/{user-id}/accounts?access_token={access-token} 

Wyświetli listę stron dla użytkownika, które utworzył.