【发布时间】:2016-05-26 23:15:31
【问题描述】:
我在 Apps 脚本应用程序中使用 Google Drive 共享对话框。该应用程序部署为 Web 应用程序,并通过 doGet() 方法进行访问。该应用程序包含一个使用 Google Drive 共享对话框共享 Drive 文件的按钮。
当 doGet() 请求中缺少参数值时,Google Drive 共享对话框将按预期工作。但是,当将文件 ID 作为参数传递给 doGet() 方法并单击共享按钮时,Google 云端硬盘共享对话框返回错误:
Origin 'https://xxxxxxxx-script.googleusercontent.com' is not allowed for application ID " XXXXXXXXXX”。
我正在使用 HTML 服务来评估参数值并将字符串数组返回到 HTML 模板。我可以看到文件 ID 包含在对驱动器共享对话框功能的请求中。为什么在没有参数值的情况下它会按预期工作,但在评估参数值时会抛出 Origin not allowed 错误?我什至尝试将原始 URL 添加到开发人员控制台中受信任的 java 脚本原始列表中,但仍然收到相同的错误。
我正在尝试使用 Google Drive UI 集成将文件 ID 从 Drive 传递到我的 Apps Script Web 应用程序。 shareResult() 函数在加载驱动器共享库后通过客户端 javascript 调用。
function doGet(e){
var html = HtmlService.createTemplateFromFile('htmlfile');
var ids = e.parameters.ids;
html.folderIds = ids;
return html.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function shareResult(){
var idList = folderIds.split(",");
s = new gapi.drive.share.ShareClient(PROJECT_ID);
s.setOAuthToken(oauthtoken);
s.setItemIds(idList);
s.showSettingsDialog();
}
【问题讨论】:
标签: javascript google-apps-script google-drive-api