2017-10-17 5 views
0

J'essaie d'obtenir le prénom d'un utilisateur facebook via leur API. Ce est mon codeNodejs, notation Request et Dot

var user = request("https://graph.facebook.com/v2.6/"+psid+"?fields=first_name,last_name&access_token="+token, function(err, res, body) { 
    console.log("name: " + body.first_name); 
    console.log("body: " + body); 
    }); 

Ceci est le résultat:

name: undefined 
body: {"first_name":"Anton","last_name":"Rosato"} 

Pourquoi le nom est indéfini?

+1

Qu'est-ce que 'console.log ("Body type:" + typeof corps)' vous donner? – Quentin

Répondre

1

vous pouvez suivre @yBrodsky conseil ou ajouter des options objet dans la demande avec {json:true}. Cela ajoutera automatiquement 'Content-type: application/json' dans votre requête et analysera la réponse comme json.

reqeust.get(url, {json:true}, callbalck) 

https://www.npmjs.com/package/request#requestoptions-callback

+0

merci, ça fonctionne comme un charme :) – xRobot

1

Il est indéfini car le corps est une chaîne. Lancez body = JSON.parse(body) avant d'essayer de lire le prénom.

+0

Existe-t-il un moyen d'obtenir la réponse de JSON? merci :) – xRobot

+0

C'est exactement ce que le code yBrodsky fourni fait ... – msanford

+0

Je ne suis pas sûr, vérifiez RidgeA réponse. Je ne sais pas si vous obtenez une réponse de JSON dans le corps. – yBrodsky