google-cloud-functions - Google Cloud Admin SDK (Node.js) 错误:请求的身份验证凭据无效
问题描述
我有这样的情况:有一个使用带有Firebase 可调用函数和Google API和Google Drive API的 Admin SDK 的 firebase 应用程序。有一个文件夹,其中包含应用程序上传的 9 个文件,使用 Google Drive API Google Drive API但这些文件不可见!
当我与新用户共享文件夹时,信息面板显示新权限也已添加到文件夹内的文件中:
但是当我尝试查看文件时 - 它显示了带有文件不可访问的消息的黑框......然后我看到文件夹中生成了一个新的空文件!
未知用户- 新服务帐户和已删除用户- 应用程序使用的已删除服务帐户(并创建了这些文件)
API Explorer 不显示文件夹中的任何文件(参数:“parents”:“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返回“找不到文件)!
我已经编写了循环遍历文件夹中所有文件的脚本(Google Apps 脚本),但它也看不到文件:
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;
}
}
使用新的服务帐户密钥也无济于事!
此应用程序还使用相同的服务帐户密钥(Admin SDK 密钥)从电子表格中获取数据,但现在它无法识别新的访问令牌:
接下来的问题是:如何恢复由应用程序创建的文件以及如何“重置”服务帐户 - 使它们工作?
解决方案
推荐阅读
- r - 转换频率数据以用于 R 中的逻辑回归
- regex - 根据同一行中不同列的值拆分一个 Pandas 列?
- python-3.x - 使用 for 循环获取 Pandas 系列索引级别
- python-3.x - 如何创建附加主题建模可视化?
- c++ - 使用 SysNative 在 Visual Studio 中创建 64 位应用程序
- php - PHPExcel+MySQL 每行导出
- google-apps-script - 如何将 Google Apps Script Web 应用程序发布到 G-Suite Marketplace?
- ios - EXC_CORPSE_NOTIFY 终止原因:命名空间 SPRINGBOARD
- c++ - 这个程序在完成任何一个动作后都会自动退出,为什么?
- multithreading - 康威的人生游戏在使用多线程后变慢了