Javascript объект не определен, хотя он явно там - PullRequest
0 голосов
/ 23 декабря 2018

Я использую запрос на получение (используя запрос npm) для доступа к информации профиля Facebook для своего бота, и он явно получает тело, но когда я пытаюсь получить доступ к имени в теле, он говорит, что он не определен.

Код такой:

      request(`https://graph.facebook.com/${sender_psid}?fields=first_name,last_name,profile_pic&access_token=${PAGE_ACCESS_TOKEN}`, function (error, response, body) {
      console.log('error:', error); // Print the error if one occurred
      console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
      console.log('body:', body); 


      console.log(body["first_name"]);
      console.log(body.first_name);

Ожидаемый вывод - это тело, а затем Джейк, Джейк, но вывод из Heroku можно увидеть ниже:

2018-12-23T19: 06: 47.739490 + 00: 00 app [web.1]: body: {"first_name": "Jake", "last_name": "Walker", "profile_pic": "https://platform -lookaside.fbsbx.com / platform / profilepic /? psid = XXXXXXX "," id ":" XXXXXXXXX "}

2018-12-23T19: 06: 47.739542 + 00: 00 app [web.1]: не определено

2018-12-23T19: 06: 47.739603 + 00:00 приложение [web.1]: не определено

1 Ответ

0 голосов
/ 23 декабря 2018

Проблема заключалась в том, что facebook предоставлял строку JSON, но мой код пытался получить к ней доступ, как если бы это был объект Javascript, на что указывает luschn.

Исправление к этому - адаптация кода для использования JSON.parse (body), который затем преобразует строку JSON в объект Javascript, доступ к которому можно получить с помощью метода, который я первоначально пытался.

...