だから、私はすでにこれを1週間試していますが、まだエラーです。スプレッドシート ID を正しく取得できます。
Currently I have this code:
function getSS(e,getSS) {
//If not yet authorized - get current spreadsheet
if (e && e.authMode != ScriptApp.AuthMode.FULL) {
var getSS = SpreadsheetApp.getActiveSpreadsheet();
}
//Else if authorized set/get property to open spreadsheet by ID for time-driven triggers
else {
if(!PropertiesService.getDocumentProperties().getProperty('SOURCE_DATA_ID')){
PropertiesService.getDocumentProperties().setProperty('SOURCE_DATA_ID', e.source.getId());
}
var getSSid = PropertiesService.getDocumentProperties().getProperty('SOURCE_DATA_ID');
var getSS = SpreadsheetApp.openById(getSSid);
}
return getSS;
}
var SS = getSS();
アドオンがまだ承認されていない場合はアクティブなスプレッドシート ID を取得し、承認されている場合はプロパティからスプレッドシート ID を取得することになっています。openById()
ただし、インストール済みとしてテストすると、使用する権限がない、または使用できないというエラーが常に表示されます。getDocumentProperties()
authMode で null にならずに SS をグローバル変数として保持するにはどうすればよいですか?