Я пытаюсь получить информацию о профиле пользователя в Facebook, используя API-интерфейс Graph в nodejs, где я делаю следующий запрос.Объект Javascript возвращает undefined NodeJs
var url = 'https://graph.facebook.com/v2.6/' + id
var qs = {fields:'first_name,last_name',access_token:token}
request({
url: url,
method: 'GET',
qs
}, function(err, response, body){
var name = body.first_name
var message = "Hey there " + name
})
}
Ответ на запрос от сервера выглядит следующим образом
{
"first_name": "Peter",
"last_name": "Chang"
}
Однако имя возвращается как определено. Но если я позвоню так.
var url = 'https://graph.facebook.com/v2.6/' + id
var qs = {fields:'first_name,last_name',access_token:token}
request({
url: url,
method: 'GET',
qs
}, function(err, response, body){
var name = body
name = JSON.jsonstringify(body)
var message = "Hey there " + name
})
}
Это дает выход, как это,
Hey there {"statusCode":200,"body":"{\"first_name\":\"Peter\",\"last_name\":\"Chang\"}"}
Так почему же имя возвращается как определено в первом примере. Что я делаю не так? Пожалуйста, объясните кому-нибудь. Спасибо
Существует также клавиша «body» firstlevel. Итак, 'name = body.body.first_name' –
Если ответ сервера включает только first_name/last_name, то я думаю, что body.first_name будет в порядке. Причина в том, что тело body.body - это потому, что запрос просто возвращает полный ответ в переменной body (следовательно, код состояния и т. Д.), – MrWillihog