Авторизация API Google с помощью служебного ключа выполнена успешно, но при последующих запросах по-прежнему отображается «401 Login Required» - PullRequest
0 голосов
/ 02 ноября 2018

Я использую метод служебного ключа для аутентификации с помощью googleapis в node.js. Я могу успешно пройти аутентификацию, но когда я пытаюсь сделать запрос после этого, я получаю сообщение об ошибке «401 Login Required».

Вот код аутентификации:

const google = require('googleapis').google;
const privateKey = require('./private_key.json');

const jwtClient = new google.auth.JWT(
    privateKey.client_email,
    null,
    privateKey.private_key,
    [
        'https://www.googleapis.com/auth/analytics.readonly'
    ]
);

jwtClient.authorize((err, tokens) => {
    if(err) {
        console.log(err);
    }
    else {
        console.log('Google Authenticated');
    }
});

В приведенном выше коде текст "Google Authenticated" отображается успешно, указывая, что аутентификация должна была пройти успешно.

Но когда я пытаюсь использовать API после этого, я получаю ошибку 401 из этого:

google.analytics('v3').data.ga.get({
    auth: jwtClient,
    ids: 'ga:xxxxxxxx',
    'start-date': '30daysAgo',
    'end-date': 'today',
    'metrics': 'ga:pageviews'
}).then((err, result) => {
    // error object here contains a 401
    if(err) return console.log(err);
    console.log(result);
});

1 Ответ

0 голосов
/ 27 января 2019

Вы смешиваете обратные вызовы и обещания :) Попробуйте это!

google.analytics('v3').data.ga.get({
    auth: jwtClient,
    ids: 'ga:xxxxxxxx',
    'start-date': '30daysAgo',
    'end-date': 'today',
    'metrics': 'ga:pageviews'
}).then(result => {
  console.log(result.data);
}).catch(err => {
  console.error(err);
});

Можете ли вы попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...