2010-04-22 16 views
14

Avrei dovuto chiederlo nel forum per sviluppatori di Facebook, ma in qualche modo non riesco a registrarmi al forum e la funzione di connessione di Facebook non funziona al momento sto scrivendo questo .Scegli Graph API o la vecchia API REST per l'applicazione Facebook

In ogni caso, sono ancora confuso se utilizzare l'API Graph o la vecchia API REST per la mia app di Facebook. Generalmente, questo è quello che voglio ottenere nella mia app:

  1. Ottenere l'immagine del profilo e il nome dell'utente.
  2. Ottieni l'immagine del profilo e il nome degli amici dell'utente che stanno utilizzando anche la mia app.
  3. Invia nello stream dell'utente.
  4. Consentire agli utenti di invitare i propri amici a utilizzare l'applicazione.

Qualcuno può fornirmi una panoramica, quale è meglio per la mia applicazione?

+0

durante lo screencast, lo sviluppatore principale ha suggerito di utilizzare Graph ma ci sono chiarezza su ciò che non è possibile ottenere tramite Graph. Non sono sicuro che Connect.registerUsers sia supportato. – timpone

+0

Felice di sapere che qualcun altro sta avendo problemi con i forum degli sviluppatori di Facebook. – Nicole

+1

@ Renesis: in realtà tutti hanno problemi con i forum FB ;-) – zerkms

risposta

5
  1. Ottieni foto profilo e nome dell'utente.
    • http://graph.facebook.com/[uid] per il nome e http://graph.facebook.com/[uid]/picture è un collegamento sempre aggiornato alla foto corrente. Inoltre, se si dispone di un token di accesso, è possibile interrogare http://graph.facebook.com/me per i dati sull'utente corrente, chiunque sia.
  2. Ottieni foto profilo e nome degli amici dell'utente che stanno utilizzando anche la mia app.
    • Non sono sicuro di come ottenere solo gli amici specifici, magari utilizzando FQL. Tuttavia, si noti che è possibile ottenere campi specifici nella lista amici (di default solo per citarne e id) con l'aggiunta di un parametro fields: .../friends?fields=id,name,picture
  3. messaggio nel flusso dell'utente.
  4. Consentire agli utenti di invitare i propri amici a utilizzare l'applicazione.
    • Siamo spiacenti, non è sicuro su questo ...
+0

Sembra buono. Per il punto numero 4, penso di poterlo raggiungere usando il widget FBML. Grazie ! – Andree

+0

Dove lo hai trovato nella documentazione? Mi stavo chiedendo se è possibile ottenere l'elenco degli amici ordinato su un campo particolare. – Luke

2

Utilizzare l'API grafico poiché incorpora tutto ciò che aveva la vecchia API REST. Inoltre, la nuova API è RESTful e i risultati vengono restituiti in JSON, il che è positivo!

+0

Plus - TOS più amichevole; Meno - richiesta di permessi estesi per qualsiasi nuovo tipo di dati ;-) – zerkms

7

Come Renesis detto, l'API grafico copre esattamente ciò che serve per i primi tre passi.

Per il quarto punto, ho cercato presso l'API ampiamente per le mie applicazioni e hanno trovato il modo di farlo tramite FBML con il seguente codice:

<fb:serverFbml> 
<script type="text/fbml"> 
<fb:fbml> 
    <fb:request-form 
     method='POST' 
     type='join my Smiley group' 
     content='Would you like to join my Smiley group? 
      <fb:req-choice url="http://apps.facebook.com/smiley/yes.php" 
       label="Yes" />' 
      <fb:req-choice url="http://apps.facebook.com/smiley/no.php" 
       label="No" />' 
     <fb:multi-friend-selector 
      actiontext="Invite your friends to join your Smiley group."> 
    </fb:request-form> 
</fb:fbml> 
</script> 
</fb:serverFbml> 

http://developers.facebook.com/docs/guides/canvas/#requests

E ' Sembra che Scott non sia corretto quando dice che Graph incorpora tutto ciò che la vecchia API REST ha:

"Siamo attualmente nel processo aggiornamento dell'API del server principale dalla vecchia API REST all'API più moderna del grafico . Tuttavia, la maggior parte dei metodi necessari per le applicazioni su tela per l'integrazione di con Facebook non sono ancora stati aggiornati alla nuova API per . Per il momento essere, si consiglia di continuare utilizzando la vecchia API REST in applicazioni di tela invece delle nuove API per il bene di completezza."

(posso inviare solo un collegamento ipertestuale, quindi è il lo stesso come il collegamento ipertestuale #requests ma nella sezione 'Effettuare chiamate API')

Non sono sicuro se questo è il caso con altri metodi di integrazione come applicazioni web o desktop, ma finora sembra che l'API Graph

Modifica:

per elencare le immagini del profilo di un amico di un utente, utilizzare il seguente:

Supponendo che hai già ID dell'utente corrente

https://graph.facebook.com/**USER-ID**/friends?fields=picture,name&access_token=**ACCESS-TOKEN** 

Ciò fornirà un oggetto JSON con un elenco dei gli amici dell'utente corrente che contengono l'UID, il nome e un link alla versione ridotta dell'immagine del profilo.

non ho trovato un modo per recuperare la versione grande dell'immagine in una ricerca eppure così con tale metodo, se si voleva la versione grande, dovreste scorrere ogni utente e di utilizzare questo:

https://graph.facebook.com/**USER-ID**/picture?type=large 
+0

Tuttavia, non riesco ancora a trovare il modo di soddisfare il requisito 2 in graph API (users.getAppUser). Hai qualche suggerimento? Attualmente sto utilizzando l'API legacy per questa funzione e l'API grafico per gli altri. – Andree

+0

Non riesco a formattare correttamente i commenti, non sono abbastanza intelligente. Modifica la risposta – tonyhb