Я использую метод служебного ключа для аутентификации с помощью 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);
});