Невозможно авторизовать с помощью существующего токена доступа с Google API node.js SDK

Сначала немного предыстории; У меня есть приложение на основе PHP, которое обрабатывает поток Google OAuth и сохраняет полученный токен доступа в базе данных. Я могу прекрасно использовать этот токен доступа в другом PHP-скрипте, поэтому я не думаю, что срок действия токена истек.

Проблема возникает, когда я пытаюсь использовать токен доступа в сценарии node.js. Я всегда получаю эту ошибку от Google API.

{ [Ошибка: недопустимые учетные данные] код: не определено, ошибки: [ {домен: 'глобальный', причина: 'authError', сообщение: 'Недопустимые учетные данные', locationType: 'заголовок', местоположение: 'Авторизация' } ] }

Код node.js, который я использую для справки, выглядит следующим образом:

var CLIENT_ID = 'CLIENT_ID';
var CLIENT_SECRET = 'CLIENT_SECRET';
var REDIRECT_URL = 'REDIRECT_URL';

var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

oauth2Client.setCredentials({
  access_token: 'ACCESS_TOKEN'
});

var analytics = google.analytics('v3');

analytics.management.accounts.list({
    auth : oauth2Client
}, function(err, resp) {
   console.log(err);
   console.log(resp);
});

Я попытался жестко закодировать значение access_token в тестовом сценарии, но результат тот же.

Любые предложения приветствуются!


person Simon Thompson    schedule 21.05.2015    source источник
comment
Когда у меня возникают проблемы с доступом к API в Node.js, я пытаюсь использовать некоторые библиотеки-оболочки, чтобы убедиться, что что-то работает. Я даю вам два скрипта, которые могут вам помочь github.com/sfarthin/ga-analytics github.com/ncb000gt/node-googleanalytics   -  person Dejan Toteff    schedule 21.05.2015


Ответы (1)


Покопавшись в коде библиотек PHP и Node.js API, я нашел ответ.

Клиент PHP API автоматически проверяет, недействителен ли токен, а затем обновляет его, не сообщая вам (насколько я вижу). Мой сохраненный токен был недействителен, поэтому мне просто нужно обновить его вручную в сценарии Node.js.

person Simon Thompson    schedule 23.05.2015