2015-01-20 8 views
6

Sono nuovo nello sviluppo di Meteor e sto avendo molti problemi con questo. Ho trovato la seguente guida, che è la cosa più vicina che ho trovato per una soluzione: http://www.andrehonsberg.com/article/facebook-graph-api-meteor-jsCome posso accedere all'elenco degli amici di Facebook di un utente su Meteor?

I .getFriends() funzione qui sembra essere molto promettente pure, ma non ho alcuna esperienza con questo: https://github.com/maxkferg/meteor-facebook-collections/

I implementato il seguente codice nel client/config/config.js:

Accounts.ui.config({ 
    requestPermissions: { 
     facebook: ['email', 'user_friends', 'user_location', 'user_events', 
     'friends_events', 'friends_location', 'friends_about_me', 
     'user_status', 'friends_status', 'read_friendlists'], 
    } 
}); 

Ciò ha generato correttamente la richiesta di permessi previo log-in. (Ho un problema, però sto ricevendo il seguente errore: "Errore non rilevato: Accounts.ui.config: impossibile impostare requestPermissions più di una volta per facebook", il che è strano, dal momento che punta agli account hidden_ui file .js, che non ho accesso a. Non devo essere in grado di ignorare questo bene? La guida di cui sopra non ha menzione di questo errore.)

Ho implementato anche il resto del codice della guida, ma Niente sembra funzionare. Inoltre, la guida sembra implementare un pulsante sullo schermo che causa la visualizzazione di alcuni aspetti dei dati dell'utente (amici, post, ecc.) In un elenco. Comunque non voglio alcun tipo di display; Voglio solo essere in grado di accedere ai dati (una serie di ID specifici di Facebook per gli amici di un determinato utente sarebbe l'ideale) in modo che io possa usarlo per varie funzioni nella mia app web.

Qualsiasi e tutti gli aiuti sarebbero davvero apprezzati!

+0

Ti rendi conto che amico permessi se ne sono andati, e che si può ottenere solo il amici che hanno autorizzato la tua app, giusto? solo dicendo, perché metà delle tue autorizzazioni sono deprecate e "read_friendlists" non è per ottenere amici. hai bisogno di dare un'occhiata ai documenti di Facebook. – luschn

+0

Sì, l'ho visto in questo post: http: // StackOverflow.it/questions/23417356/facebook-graph-api-v2-0-me-friends-returns-empty-or-only-friends-who-also-u Sembra che potrò solo accedere ad amici che hanno anche autorizzato 'user_friends' (cioè chi ha utilizzato la nostra app). Questo non sembra essere un grosso problema a lungo termine, tuttavia, a patto che gli elenchi di amici degli utenti vengano aggiornati in modo relativamente regolare (ad esempio, ogni volta che si disconnettono e ricollegano). Inoltre, le altre autorizzazioni sono lì solo per la guida; Mi interessa solo e-mail e user_friends. –

risposta

7

Dal tuo commento capisco che ti interessi solo user_friends e email.

Se si utilizza il pacchetto accounts-facebook per Utentelogin, si dispone già dell'email dell'utente. Per utilizzare l'accesso, è necessario configurare il servizio. A tale scopo, serverside all'avvio (more info):

ServiceConfiguration.configurations.upsert({ 
     {service: "facebook"}, 
     { $set: { 
      appId: "XXX", 
      secret: "XXX", 
      requestPermissions: ['user_friends'] //here you are requesting the permission to get the user's friends 
     } 
    }); 

Il passo successivo sarebbe quello di ottenere amici dell'utente. Si potrebbe usare un pacchetto per farlo, oppure si potrebbe farlo a mano: Innanzitutto si dovrebbe verificare, se l'utente ha dato il permesso. inviare una richiesta al Facebook-API (API):

GET /{user-id}/permissions 

Speriamo che si otterrà un oggetto nella forma:

{ 
    "data": [ 
    ..., 
    { 
     "permission": "user_friends", 
     "status": "granted" 
    } 
    ] 
} 

Ciò significa, l'utente ha dato il permesso di ottenere i suoi amici (more info).

Nella fase successiva, la tua ricerca il Graph API per le friendlists more info:

GET /v2.3/{user-id}/friendlists HTTP/1.1 
Host: graph.facebook.com 

Questo ti porterà tutti i friendlists dell'utente. Nell'ultimo passaggio è possibile interrogare per tutte o alcune delle liste (ad esempio 'Chiudi Friends', 'Conoscenti') con more info:

GET /v2.3/{friendlist-id} HTTP/1.1 
Host: graph.facebook.com 
Problemi correlati