2017-08-22 43 views
1

幾天前,我寫了一個app,它創建了用於測量坑窪的電子表格。昨天,我有人在我面前測試這個應用程序,從我看到的,通過其他錯誤,用戶有一些「訪問請求」屏幕。幾小時後,我去了我的賬戶上的Google表格,看到應用程序生成的表格被放到了我的賬戶上,而不是他們的賬戶上。我轉到Gmail,並收到一封電子郵件,說他們正在請求訪問電子表格。在最終用戶的帳戶上創建Google表格

我該如何在他們的帳戶下創建它,或者確保他們自動訪問並編輯它的權限?

+0

該應用程序是以您還是作爲用戶運行?您是否擁有自己的帳戶信息,這意味着您使用的是G Suite Business/education/non-profit帳戶,並且可以讓該應用只針對該域的成員運行? –

+0

我認爲應用程序正在運行。 /*它是在我的帳戶下創建的*/ –

+1

當您選擇**發佈 - >部署爲Web應用程序**時,_Execute應用程序下的設置是什麼:_以及_Who具有訪問權限的設置是什麼到應用程序:_第二個可能是_Anyone_或_Anyone甚至匿名_因爲我可以訪問前端。我懷疑你的第一個是你,因爲它會在你的賬戶下創建新的文件。 –

回答

1

有兩種選擇:

(a)當部署該應用程序,設定參數「執行應用程序爲」到「用戶訪問web應用程序」。然後,無論應用程序會在該用戶的授權下做什麼,特別是他們將擁有由該應用程序創建的任何電子表格。 (b)像您(開發人員)一樣執行網絡應用程序,但通過addEditor方法將用戶添加爲編輯器。直接嘗試將是

function doGet() { 
    var ss = SpreadsheetApp.create("new spreadsheet"); 
    var user = Session.getActiveUser(); 
    ss.addEditor(user); 
    return HtmlService.createHtmlOutput("<h1>Success!</h1>"); 
} 

如果開發人員和用戶都在同一個G Suite域中,這應該可以工作。但總的來說,這是行不通的,因爲該應用程序無權識別用戶身份:請參閱documentation

解決方法是要求用戶輸入他們的電子郵件地址(將另一個字段添加到表單中以收集它),然後將其添加爲編輯器。

ss.addEditor(email); 
相關問題