gmail api возвращает 401 "Not Logged In"? - PullRequest
0 голосов
/ 15 ноября 2018

Я интегрирую 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, которое в этом случае не появляется.

Кто-нибудь знает, что я делаю неправильно?

...