Я пытаюсь написать встроенный клиент 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
}
}
Спасибо за любую помощь.
Вы в настоящее время выполняете 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);
});
messageRequest.execute(function(response) { console.log(response); });
и посмотрим, что вы получите.