Я интегрирую google auth и gmail api, чтобы читать электронные письма пользователя в моем расширении chrome.У меня есть пользовательская кнопка входа, которая при нажатии вызывает эту login()
функцию:
function login() {
console.log('~~~ attempting login ~~~');
chrome.identity.getAuthToken({interactive: true}, authorize);
}
function authorize(result) {
gapi.auth.authorize({
client_id: '9jkdmabc1fml8i8u.apps.googleusercontent.com',
immediate: true,
scope: 'https://www.googleapis.com/auth/gmail.readonly'
},
function(){
gapi.client.load('gmail', 'v1', getEmails);
});
}
В этот раз вызывается функция для получения электронных писем, которые я получил от gmail api docs :
function getEmails(callback) {
var getPageOfMessages = function(request, result) {
request.execute(function(resp) {
console.log(resp)
result = result.concat(resp.messages);
var nextPageToken = resp.nextPageToken;
if (nextPageToken) {
request = gapi.client.gmail.users.messages.list({
'userId': 'me',
'pageToken': nextPageToken,
});
getPageOfMessages(request, result);
} else {
callback(result);
}
});
};
var initialRequest = gapi.client.gmail.users.messages.list({
'userId': 'me',
});
getPageOfMessages(initialRequest, []);
}
Однако, когда я вылез resp
, я получаю ошибку 401 Login Required
.Это странно, потому что я ранее вошел в систему, когда всплыло диалоговое окно авторизации Google, которое в этом случае не появляется.
Кто-нибудь знает, что я делаю неправильно?