Пакет API Google возвращает 401 - PullRequest
0 голосов
/ 14 ноября 2018

Выполнение двух или более запросов в одном пакете приводит к 401 для каждого запроса.

const batch = gapi.client.newBatch();
batch.add(gapi.client.drive.files.list());
batch.add(gapi.client.drive.files.list());
batch.then((e) => {
  console.log(e);
});

Ошибка:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}

Использование только одного batch.add работает отлично. Это не имеет никакого смысла для меня.

Почему? Что я делаю не так?

1 Ответ

0 голосов
/ 14 ноября 2018

Непосредственно из документации Обработка ошибок

401: Неверные учетные данные Неверный заголовок авторизации.Используемый токен доступа устарел или недействителен.

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "authError",
        "message": "Invalid Credentials",
        "locationType": "header",
        "location": "Authorization",
      }
    ],
    "code": 401,
    "message": "Invalid Credentials"
  }
}

Предлагаемое действие: Обновите токен доступа с помощью долгоживущего токена обновления.Если это не удается, направьте пользователя через поток OAuth, как описано в Авторизация вашего приложения с помощью Google Диска .

Пакетная документация.

var searchRequest = function(name) {
  return gapi.client.request({
    'path': 'plus/v1/people',
    'params': {'query': name}
   });
};
var searchAlvin = searchRequest('Alvin');
var searchSimon = searchRequest('Simon');

// Adding just the request
batch.add(searchAlvin);
// Adding the request with an ID
batch.add(searchSimon, {'id': 'searchSimon'});
...