问题描述
我有一个与Google Cloud Project相关的Google Apps脚本。他们一起使最终用户能够将文件从第三方云存储平台同步到他/她的Google云端硬盘。 GCP和GAS都设置为具有这两个范围(/auth/drive、/auth/script.external_request)。 GCP范围已由Google Cloud Trust&Safety Team配置和批准。
但是,即使最终用户授权了我的应用,运行脚本也会失败。脚本代码:
function doGet(e) {
var blob = UrlFetchApp.fetch(e.parameters.url).getBlob();
blob.setName(e.parameters.name);
var file = DriveApp.createFile(blob);
var folder = DriveApp.getFolderById(e.parameters.folder);
file.moveto(folder)
return ContentService.createtextoutput(file.getId());
}
当用户需要同步文件(网址)时,以下服务器代码将调用GAS脚本。
async upload(url: string,name: string,folder: string,token: IToken): Promise<IResult> {
try {
const payload = {
url,name,folder
} as any;
const resp = await superagent
.get("https://script.google.com/macros/s/AKfycbz06kJef54o2SQFtDCVB8qjwFE9j3kplr8ikmR1JVMiNZL3Bt2Q/exec")
.set('Authorization',`Bearer ${token.access_token}`)
.query(payload);
return util.success(resp.body);
} catch (e) {
return util.fail(e);
}
}
我在日志中收到以下错误:
TypeError: Cannot read property 'parameters' of undefined
at doGet(Code:2:34)
是错误的脚本还是授权?我是Google Cloud的新手,我感到很困惑。非常感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)