我有一个谷歌表格,收集用户的excel文件,并上传到驱动器。据我所知,我应该从excel文件转移到电子表格来打开和获取数据。因此,我使用Drive.Files.insert()来转换文件,这需要对脚本进行额外的审批。我在Google script上的Resources > Advanced Google Services下启用了google Drive API,并将此google script链接到一个google云项目。Google Drive API在谷歌云上也启用了"OAuth 2.0客户端ID“。但我的脚本仍然无法通过谷歌登录过程,只返回一个带有谷歌登录页面的word文件。
脚本:
var Blob01 = UrlFetchApp.fetch(thelink).getBlob();
var fileInfo = {
title: "test1",
mimeType: MimeType.GOOGLE_SHEETS,
"parents": [{
'id': FolderId
}],
};
Drive.Files.insert(fileInfo, Blob01, {convert: true});OAuth设置: Google APIs驱动器的范围../auth/ >>和../auth/drive。文件凭据: OAuth客户端ID >>网络应用程序google drive api已启用,并将凭据添加为"Google drive api“、"web browser”和"User data“
提前感谢
发布于 2020-04-09 16:21:53
当您使用UrlFetchApp从驱动器获取文件时,它将需要授权。这就是为什么你会得到一个带有谷歌登录页面的word文件。
相反,尝试使用DriveApp从Google Drive目录中获取文件。例如,您可以使用.getFilesByName()函数。
下面是您的用例示例:
var blob = DriveApp.getFilesByName("Excel.xlsx").next().getBlob(); // Assuming this file name is unique in your google drive
var file_ops = {
title: "test1",
mimeType: MimeType.GOOGLE_SHEETS,
"parents": [
{
"id": FolderId
}
]
};
Drive.Files.insert(file_ops, blob, {"convert": true});参考文献:
https://stackoverflow.com/questions/61115889
复制相似问题