2017-08-08 90 views
3

我開發一個使用電子表格作爲其數據庫中的谷歌應用程序的腳本程序表被複制腳本項目,

我給他們一個URL來進行復印從給應用客戶電子表格(該腳本在該電子表格上)並且他們授權並使用該副本。

最近,我的客戶在授權腳本之前獲得了「未驗證的應用程序」屏幕。所以我填寫了一份表格對谷歌驗證和谷歌證實它,但我客戶仍然得到未經證實的屏幕...

我懷疑問題是,每個片得到一個新的項目標識和客戶端ID當被複制,所以谷歌驗證不適用於他們。

有誰知道解決方案,我可以驗證副本嗎?還是有另一種方法可以讓應用程序給人,而不需要他們複製,而且每個人都應該擁有自己的腳本和電子表格?從谷歌失去了谷歌應用程序驗證的應用時

+1

什麼是完整的錯誤消息,您的用戶得到? – KENdi

+0

沒有錯誤信息,只是新的「未驗證的應用程序」屏幕 – David

+0

請您可以顯示「未驗證的應用程序」屏幕的屏幕截圖嗎? –

回答

0

儘管在製作副本時沒有保留相同項目ID的解決方案,但您可以將項目發佈爲Web應用程序,並讓Web應用程序爲您創建工作表並使用該工作表讀取和寫入數據。

這裏是我做過什麼

function getCustomSpreadsheet(){ 
     //try to get the spreadsheet id of the already created spreadsheet 
     var ssid = PropertiesService.getUserProperties().getProperty('customSsid'); 
     //if sheet does not exist, create it 
     if(!ssid) var ssid = createCustomSpreadsheet(); 
     var ss = SpreadsheetApp.openById(ssid); 
     return ss; 
    } 

    function createCustomSpreadsheet(){ 
     //make a copy of your template spreadsheet and save its id to a property 
     fileId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";//your ss id here 
     var ss = DriveApp.getFileById(fileId).makeCopy(); 
     var ssid = ss.getId(); 
     PropertiesService.getUserProperties().setProperty('customSsid', ssid); 
     return ssid; 
    } 


我發現/在我的代碼SpreadsheetApp.getActiveSpreadsheet()隨處更換,以getCustomSpreadsheet()和happely從那以後住...