SDK Google Cloud Admin (Node.js) Ошибка: у запроса неверные учетные данные - PullRequest
0 голосов
/ 13 декабря 2018

У меня такая ситуация: есть приложение firebase, которое использует Admin SDK с функциями, вызываемыми Firebase и Google API и Google Drive API .Существует папка, которая содержит 9 файлов, загруженных приложением с использованием Google Drive API Google Drive API , но эти файлы не отображаются!

Когда я делюсь папкой с новым пользователем, информацияПанель показывает, что новые разрешения были добавлены к файлам внутри папки:

List of files in the folder

Но когда я пытаюсь просмотреть файл - он показывает черный ящикс сообщением, что файл недоступен ... и после этого я вижу новый пустой файл, сгенерированный в папке вместо этого!

Неизвестные пользователи - новые учетные записи служб и удаленоПользователь - удаленная учетная запись службы, которая использовалась приложением (и которая создала эти файлы)

Trying to view the file

New file instead

API Explorer не показывает никаких файлов в папке (с параметрами: "parent": "folder_id", "fields:" * "): https://developers.google.com/drive/api/v3/reference/files/create?apix=true

Попытка загрузкифайлы https://drive.google.com/a/nbmrteam.com/uc?export=download&id=file_id возвращает "Файл не найден)!File not found

Я написал скрипт (Google Apps Script), который просматривает все файлы в папке, но он также не видит файлы:

function getListOfFiles(folderId) {
  try { 
    Logger.log("getListOfFiles()---------------------------");
    Logger.log("folderId: " + folderId);

    var result = {
      msg: "NOT FOUND",
      files: null
    };

    var destFolder = null;
    var exists = false;  
    var fileData = [];

    if(folderId) {
      destFolder = DriveApp.getFolderById(folderId); //.getFiles()
    } else {
      destFolder = DriveApp.getRootFolder(); 
    }

    if(destFolder) {
      //if(!destFolder) return result;

      var files = destFolder.getFiles();

      while (files.hasNext()) {
        var file = files.next();

        var data = {
          name: file.getName(),
          id: file.getId(),
          url: file.getUrl(),
          isTrashed: file.isTrashed(),
          size: file.getSize()
        }

        fileData.push(data);
        Logger.log(file.getName());

        result.files = JSON.stringify(fileData);
        result.msg = "OK";
      }
    }

    return result;

  } catch (err) {
    Logger.log(err.toString());
    return err.message;
  }
}

Также не помогло использование новых ключей служебных учетных записей!

Также это приложение использовало тот же ключ служебной учетной записи (ключ SDK администратора) для извлечения данных из электронной таблицы, но теперь оно не распознает новый доступ.Токены:

Ошибка: в запросе указаны неверные учетные данные. :
Authorisation error
Error: Request had invalid authentication credentials.

Вопрос следующий: как восстановить файлы, созданные приложением и как «сбросить» учетные записи служб - заставить их работать?

...