我正在使用Apps腳本應用程序中的Google雲端硬盤共享對話框。該應用程序被部署爲一個Web應用程序,並通過doGet()方法訪問。該應用程序包含一個使用Google雲端硬盤共享對話框共享雲端硬盤文件的按鈕。
當doGet()請求中缺少參數值時,Google Drive共享對話框按預期工作。但是,當將文件ID作爲參數傳遞給doGet()方法並單擊共享按鈕時,Google Drive共享對話框將返回錯誤:
原因'https://xxxxxxxx-script.googleusercontent.com'不適用於應用程序ID「XXXXXXXXXX」。
我正在使用HTML服務來評估參數值並將字符串數組返回給HTML模板。我可以看到請求中包含的文件Id包含在Drive共享對話框功能中。爲什麼它會按照預期的方式使用out參數值,但在評估參數值時拋出Origin not allowed錯誤?我甚至嘗試將Origin URL添加到開發人員控制檯中受信任的Java腳本來源列表中,但仍然收到相同的錯誤。
我正嘗試使用Google Drive用戶界面集成將文件ID從雲端硬盤傳遞到我的Apps腳本Web應用程序。加載驅動器共享庫後,shareResult()函數通過客戶端JavaScript調用。Google Apps腳本中的Google雲端硬盤共享對話框
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();
}
我更新了我用的代碼片段來傳遞參數並觸發ShareClient對話框的問題。在調試代碼時,我可以在shareResult函數中看到來自e.parameters.ids的文件ID。 – Ken
也許這些領域需要在拆分後修剪?即也許有一個空格字符前綴/後綴在一個ID使其無效。 –