Gmail API messages.get не возвращает ожидаемые данные

1

Я пытаюсь написать встроенный клиент gmail и следил за документацией API на сайте разработчика, но я не могу получить данные сообщения в своем ответе. Я не могу назвать эти метки без проблем (используя код из документов API), поэтому я знаю, что он аутентифицирован. Я также могу получить идентификаторы сообщений.

Когда я пытаюсь получить фактические данные сообщений, у меня возникает проблема, когда возвращаемый объект не имеет ожидаемых данных. Я проверяю это, регистрируя данные messageRequest на консоли, потому что полезная нагрузка сообщения не существовала, когда я изначально пытался получить к ней доступ.

function displayInbox() {
  var request = gapi.client.gmail.users.messages.list({
    'userId': 'me',
    'labelIds': 'INBOX',
    'maxResults': 10
  });

  request.execute(function(response) {
    $.each(response.messages, function() {
      var messageRequest = gapi.client.gmail.users.messages.get({
        'userId': 'me',
        'id': this.id,
        'format': 'full'
      });
      console.log(JSON.stringify(messageRequest,null,4));
      messageRequest.execute(appendPre);
    });
  });
}

С консоли разработчика я получаю этот вывод:

(index):473 {
    "Mq": 1,
    "Zq": {
        "QT": null,
        "k5": {
            "path": "/gmail/v1/users/me/messages/15f3a370bc482a7a",
            "method": "GET",
            "params": {
            "format": "full"
            },
            "headers": {},
            "root": "https://www.googleapis.com",
            "apiId": "gmail:v1"
        },
        "Ida": "auto",
        "Uja": false,
        "Tja": false
    }
}

Спасибо за любую помощь.

  • 1
    Вы структурируете объект запроса. То, на что вы смотрите, не является ответом. Попробуйте messageRequest.execute(function(response) { console.log(response); }); и посмотрим, что вы получите.
  • 1
    Это проблема. Большое спасибо, что дал мне правильную информацию. Если вы хотите отправить это как ответ, я выберу это.
Теги:
gmail-api

1 ответ

1
Лучший ответ

Вы в настоящее время выполняете JSON.stringify в объекте запроса. То, что вы видите на консоли, - это не ответ.

Попробуйте и дождаться, когда messageRequest закончит асинхронно, и вместо этого messageRequest response в messageRequest:

var messageRequest = gapi.client.gmail.users.messages.get({
  userId: 'me',
  id: this.id,
  format: 'full'
});
messageRequest.execute(function(response) {
  console.log(response);
});
  • 0
    Еще раз спасибо за ответ. У меня есть дополнительный вопрос. Я добавил код, но обнаружил, что он печатает каждое сообщение 15 раз. Вы знаете, почему это может быть?
  • 1
    @ dtow1 Интересно. Боюсь, очень сложно сказать, не увидев больше кода. Может открыть новый вопрос?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню