9

vorrei ottenere amici degli amici tramite una chiamata API e quando provo a farlo, ottengo la seguente eccezione,Come amici di amici in FB grafico API

{ 
    "error": { 
     "type": "OAuthException", 
     "message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission" 
    } 
} 

L'URL che sto cercando di l'accesso è,

https://graph.facebook.com/friend_id/friends?access_token=access_token

mi sto esteso le autorizzazioni che è la seguente,

<fb:login-button perms="user_likes,friends_likes"></fb:login-button> 

Qualcuno potrebbe farmi sapere cosa sta succedendo qui? O significa che non potrò mai avere accesso ad amici di amici?

+1

A destra: non puoi accedere a Amici di amici. –

+0

Mi piacerebbe sapere come farlo. Puoi farlo da Facebook e l'app per iPhone di Facebook lo consente anche. – senfo

+0

@Abhishek: Ora è possibile con fql ottenere amici di amici (limitati) .. Ho dato una soluzione. –

risposta

-3

Purtroppo, non posso chiedere la tua risposta in modo specifico poiché non ho esperienza con l'API FB. Tuttavia, credo che l'FB consenta agli utenti di nascondere chi sono i loro amici. Se hanno questo set, forse non sarai in grado di accedere ai loro amici. Proverei a modificare il codice per verificare innanzitutto quali sono le autorizzazioni di un determinato utente e solo dopo accedendo al loro elenco di amici se si ha accesso ad esso. Un po 'di speculazione qui, però.

+0

Bene, ho anche provato a creare due profili con tutti gli accessi agli amici e testarlo. Non sembra funzionare :( – Abhishek

6

Attualmente non è disponibile un'autorizzazione estesa che consente di visualizzare gli amici di amici di un utente. Le autorizzazioni "* _likes" ti mostrano solo le pagine di Facebook che gli utenti hanno gradito.

Potrebbe essere possibile recuperare e memorizzare in modo iterativo gli amici di ciascuno degli amici dell'utente, uno per uno, ma senza token di accesso per ciascun amico, sarà solo possibile recuperare i dati pubblici.

+0

Questa è la risposta corretta 100% –

-1

È possibile ottenere gli amici dell'utente corrente tramite una chiamata API Graph a me/amici. Avrai bisogno di qualsiasi access_token valido, senza permessi speciali estesi, solo quello di base. C'è un avvertimento, che l'utente deve consentire di vedere la loro lista di amici. Quindi in Impostazioni privacy> Connessione su Facebook è presente l'impostazione "Visualizza l'elenco dei tuoi amici". Se l'utente ha scelto un'impostazione personalizzata e ha selezionato "Solo io", si otterrà questo errore.

Analogamente, se l'utente corrente consente ad altri di vedere la loro lista di amici, ma uno degli amici lo interrompe a causa di problemi di privacy, non sarà possibile vedere alcun dato e otterrà quell'errore.

Sono stato in grado di verificare gli scenari che ho descritto.

+0

Non so perché questa risposta sia stata respinta, è la risposta giusta I migliori scenari sono amici comuni, mostrati qui: http: // developers .facebook.com/docs/reference/rest/friends.getMutualFriends /. O utilizzando il grafico qui: http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fmutualfriends%2F1207059 –

3

ho avuto amici degli amici (limitato). Ho avuto lo stesso problema. Anche se è molto tardi per rispondere alla domanda, aiuterà qualcuno. Ecco perché rispondere a questa domanda.

Possiamo ottenere amici di amici che sono utenti di app. $ fb_id = ID utente di cui hanno bisogno gli amici degli amici.

$ query = "SELECT uid, nome, work_history FROM user WHERE uid IN (SELECT uid2 FROM amico dove uid1 IN (SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM amico dove uid1 = $ fb_id) e is_app_user = 1)) "; $ user_info = $ facebook-> api (array ('metodo' => 'fql.query ', ' query '=> $ query));

@Olie:

state cercando di caricare i tuoi amici del tuo amico attraverso l'applicazione. Quindi avresti bisogno del permesso del tuo amico di cui vuoi gli amici. Ad esempio, il tuo amico dovrebbe usare quell'applicazione e ha accettato tali permessi pur consentendo l'accesso alle informazioni. Altrimenti non sarai in grado di amici del tuo amico. Ho provato questa domanda. E funziona con successo.

"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission" 

Questo messaggio spiega bene. Leggi attentamente.

Spero che tu capisca i criteri della soluzione.

+0

Non lo sto seguendo. Dire che elenco i miei amici, e contengono fbID = 17, 24, 319 e 4027. Ora vorrei come ottenere un elenco degli amici di fbID = 319 (uno dei miei amici). Funziona sul sito Web di FB, ma non riesco a farlo funzionare usando la tua query. Mi sto fraintendendo? – Olie

+0

@Olie: Ho soluzione aggiornata. –

1

non è possibile ottenere amici di amici, non è consentito a causa di problemi di privacy.

Un trucco che abbiamo fatto prima è quello di salvare tutti gli amici degli utenti a possedere il proprio database. In questo modo potremmo fare un riferimento incrociato a tutti i diversi utenti della lista di amici e almeno ottenere amici di amici che hanno utilizzato l'applicazione che abbiamo creato.

Nota importante, una tabella di questo tipo potrebbe rapidamente diventare abbastanza considerevole a seconda della quantità di utenti che si ottiene.

Contare su ogni utente con circa 250-300 amici in media, quindi se si opta per tale soluzione assicurarsi di ottimizzare il database per esso, e quindi dovrebbe funzionare semplicemente fantastico.