2015-08-17 9 views
12

Voglio recuperare il paese dell'utente registrato e inserirlo in un div. Riesco a farlo con il nome utente, il sesso e la fascia di età, ma non riesco a recuperare il Paese. Ecco il mio codice:Come recuperare il paese dell'utente utilizzando l'API Graph di Facebook?

function testAPI() { 
console.log('Welcome! Fetching your information.... '); 
FB.api('/me?fields=name,email,gender,age_range,picture,country', function (response) { 
    document.getElementById('status').innerHTML = response.name + ","; 
    document.getElementById('status1').innerHTML = response.gender + ","; 
    document.getElementById('status2').innerHTML = (response.age_range.min) + "-" + (response.age_range.min + 1) + " years old"; 
    document.getElementById('status3').innerHTML = response.country; 
} 

Grazie!

+0

vedere [link] (http: // StackOverflow. com/domande/27379382/recuperare-u ser-country-through-facebook-android-graph-api) – Esty

risposta

26

Credo che il parametro che stai cercando sia location anziché paese.

/me?fields=name,email,gender,age_range,picture,location 

Al fine di interrogare questi dati, è necessario agli utenti di concedere la user_location permission.

Questo vi darà valore del campo inseriti dall'utente - prendere atto che questo parametro potrebbe non essere sempre popolata dal momento che dipende dall'utente che invia effettivamente queste informazioni, se non le ha fornite, non sarà in grado di recuperarle.

L'oggetto sarà simile a questo:

"location": { 
    "id": "112604772085346", 
    "name": "Ramat Gan" 
    }, 

Una volta ottenuto l'oggetto posizione (che molto probabilmente essere una pagina), è possibile interrogare l'oggetto per recuperare il paese:

/112604772085346?fields=location 

Questo ti darà più informazioni incluso il paese.

{ 
    "location": { 
    "city": "Ramat Gan", 
    "country": "Israel", 
    "latitude": 32.0833, 
    "longitude": 34.8167, 
    "zip": "<<not-applicable>>" 
    }, 
    "id": "112604772085346" 
} 
+0

Funziona perfettamente. grazie per l'ottima spiegazione! – Idan

+0

Dai un'occhiata alla [risposta di vchatbot] (http://stackoverflow.com/a/32073757/558021), @Idan - sembra che ci sia un modo per farlo con una sola richiesta all'API - molto meglio: P – Lix

+0

È possibile ottenere il codice ISO per il Paese su Facebook?https://en.wikipedia.org/wiki/ISO_3166-1 – user1253414

40

per completare quello che Lix detto:

è possibile farlo con una sola chiamata a Graph API, chiamando

/me?fields=name,email,gender,age_range,picture,location{location}

In effetti, l'oggetto posizione sotto l'oggetto utente è a Page object, che ha un Location object.

Quindi, questo vi darà qualcosa di simile:

"location": { 
    "location": { 
    "city": "Ramat Gan", 
    "country": "Israel", 
    "latitude": 32.0833, 
    "longitude": 34.8167, 
    "zip": "<<not-applicable>>" 
    } 
} 

questo modo si evita di effettuare una doppia chiamata a Graph API.

+1

Impariamo qualcosa di nuovo ogni giorno! Ben fatto! – Lix

+0

'location {location}' è una nuova sintassi per me - ovviamente non ho avuto molto tempo per osservare questi cambiamenti - potresti aggiungere un po 'più di spiegazioni sul suo utilizzo? – Lix

+0

Mi dispiace ma non capisco come posso aggiungere ulteriori spiegazioni sul suo utilizzo ... C'è qualcosa che non hai capito? – vchabot

0

interrogazione v2.11:

/me?fields=hometown,location

permesso:

user_hometown user_location

risultato:

{ "hometown": { "id": "XXXXREDACTED", "name": "Manila, Philippines" }, "location": { "id": "XXXXREDACTED", "name": "Manila, Philippines" }, "id": "XXXXREDACTED" }

Problemi correlati