2010-06-09 14 views
7

Utilizzando l'API Graph di Facebook, dato un nome utente xyz (supponendo che abbiano autenticato il mio sito), come ottengo un elenco di tutte le pagine di Facebook che l'utente gestisce?Facebook Graph API + Facebook Pages

risposta

0

@rmorrison - Questo non è il grafico API però. Con la nuova aggiunta "mi piace", puoi utilizzare questo URL: h ttps: //graph.facebook.com/me/likes? Access_token = blah! o h ttps: //graph.facebook.com/USER_ID/likes? access_token = blah!

+0

Non sta cercando "mi piace", sta cercando le pagine che l'utente gestisce. –

+0

Sai come eseguire un'azione simile su una pagina? – WoodenKitty

15

La proprietà accounts sull'oggetto user dice:

Le pagine di Facebook di proprietà dell'utente corrente. Se è stata concessa l'autorizzazione manage_pages, questa connessione restituisce anche access_tokens che può essere utilizzato per eseguire query sull'API Graph per conto della pagina.

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

+0

Ooh questo deve essere nuovo ... non ho mai notato quella connessione prima! Anche se, non sono sicuro che questa sia la risposta giusta. Puoi essere un amministratore su una pagina senza essere il "proprietario". –

+0

Sembra la risposta giusta per me, restituisce tutte le pagine su cui sono un amministratore, anche quelle che non ho creato io stesso. – dar

5

Dopo aver ottenuto token di accesso è possibile ottenere tutti i dettagli dell'annuncio elenco di tutte le pagine di Facebook che l'utente amministra.

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

L'output sarà simile

{ 
    "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

Ho visto i tuoi 'metadati' qui per caso, e finalmente ho trovato come trovare le connessioni di un oggetto User - non posso fare a meno di chiedermi perché la menzione di questa collezione di metadati non è reperibile sui documenti ufficiali fb (almeno non, se non sai cosa cercare). ty, anche se il mio problema era solo collegato in remoto. – kontur

+0

È bello sapere che il tuo problema è stato risolto. Il tuo benvenuto. – PrateekSaluja

0

FQL è il modo migliore per ottenere le pagine del utente per il quale egli è l'amministratore. Come gli altri come i like dell'utente, daranno tutte le pagine che piacciono agli utenti.

1

Ecco cosa uso. Funziona perfettamente

$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/>'; 
} 

Questo è ovviamente dopo aver creato la sessione per l'utente fb! Lo $uid sarebbe l'ID del profilo # dello specifico utente di Facebook per la restituzione di un elenco di pagine gestite per.

4

Utilizzare una query fql! Questo è il modo migliore per ottenere le pagine per le quali l'utente è amministratore. Sarai anche in grado di limitare anche i nomi. pagine con nomi vuoti Esempio di query fql che fornisce anche i dettagli della pagina.

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 - Id dell'amministratore

NOTA Questo metodo non funziona a partire dalla versione 2.1 del grafico api come FQL è stata sconsigliata da quella versione in poi

0

È possibile ottenere l'elenco di pagine da un semplice hit grafico API di Facebook.

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

Fornirà un elenco di pagine per l'utente che ha creato.