希望這是一個相當簡單的問題!如何執行谷歌腳本作爲用戶無法查看的電子表格的「所有者」
我製作了一個Google腳本,它寫入單獨的工作表「MasterSheet」中的單元格中(由以下幾個有用的Q &提供幫助)。這將最終被嵌入到我爲個人用戶提供的多個不同工作表中。
當用戶對「MasterSheet」有編輯權限時,它可以很好地工作,但我需要保持私密 - 即使除我以外的任何人都看不到。
作爲背景:在每個'用戶表'中,IMPORTRANGE用於從允許該用戶查看的'MasterSheet'中導入列,然後腳本允許用戶向MasterSheet添加註釋。 我可以查看MasterSheet以查看來自各個用戶在一張統一工作表上的評論的所有列,但個別用戶應該無法查看此列。
寫在紙張上的特定的腳本是很普通的:
function saveCommentToMasterSheet(form){
var company = form.company,
contact = form.contactselect,
comment = form.message ,
ss = SpreadsheetApp.openById("MASTERSHEET_ID").getSheetByName('MasterSheet');
if(company=="all"){
var row = findCell(contact);
} else {
var row = findCell2(contact,company);
}
//^The above finds the specific row number relating to the entry the user wants to comment on.
var cell2 = ss.getRange(row,11);
// ^In this case '11' is the column related to this sheet's specific user, I've made separate sheets for each user that are identical except this column number
cell2.setValue(comment);
}
我相信我可以做MasterSheet編輯與此鏈接的人,但我寧願避免這種情況,尤其是在腳本嵌入到每個電子表格中,所以如果用戶只是看着它,他們會發現MasterSheet ID。
我知道使用執行API可以像我一樣運行腳本,但如果我誠實地說,我會努力一點,以弄清楚這個工作。
對不起,如果我問一個簡單的問題 - 我已經給它一個很好的搜索,並無法弄清楚。
非常感謝! Alex
N.B.這Running a google script from within a spreadsheet, but as a different user?看起來像一個類似的問題,但我真的想保持評論系統在用戶的電子表格。
將'doPost(e)'函數放入綁定到主電子表格的項目中。然後將該腳本作爲Web App發佈。將原始函數保留在將分發給用戶的電子表格中,但保留將要去除的所有當前代碼,並將其放入綁定到主電子表格的項目中的函數中。目前將數據寫入主電子表格的當前函數不會直接做到這一點。分佈式電子表格中的當前函數將調用主電子表格中的'doGet(e)'函數,併發送數據,這些數據將在'e'中。 –