2012-10-08 4 views
3

스프레드 시트에 액세스하여 스크립트에서 사용하는 Apps Script 라이브러리를 만들면 권한 오류 (다음 예에서는 setValue)가 발생합니다. 스크립트에서 동일한 스프레드 시트 함수를 한 번 호출 한 다음 제거한 다음 라이브러리 함수를 호출하면 권한 오류가 다시 발생하지 않습니다 (재현 가능).Apps 스크립트 라이브러리 권한

혹시 그런 행동을 경험 한 적이 있습니까? 그렇다면 어떻게이 문제를 해결 했습니까?

감사

도서관

function addRecord(ss, sheetName) { 
    var sheet = ss.getSheetByName(sheetName); 
    sheet.getRange("A1:A1").setValue("Hello World!"); 
} 

스크립트는

function myFunction() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    MyLib.addRecord(ss, "Sheet1"); 
} 

오류 메시지
"당신은 필요한 권한을 호출 할 필요가 없습니다 setV alue "

답변

1

이 문제를 해결하려면 Stefan에서보고 한 문제가 문제로 확인되었습니다. 우리는 이것을 조사하고 있습니다. 전달 된 스프레드 시트에 대한 권한이 라이브러리에 올바르게 반영되지 않았습니다.

스테판 - 원할 경우 스테판 - issue tracker에 대한 보고서를 작성하십시오.

2

귀하의 스크립트는 도서관이 가지고 있어야하는 권한과 동일한 권한을 가져야합니다 : 도서관이 스프레드 시트 또는 달력 (또는 무엇이든)을 읽고 쓰는 것을 알고 있다면이 서비스에 대한 스크립트를 승인해야합니다. 필요한 서비스에 대한 인증 프로세스를 호출하도록 시스템에 지시하는 일부 (심지어 더미) 함수를 사용하면 매우 쉽게이를 수행 할 수 있습니다. 당신이 묘사 한 바에 따르면, 스크립트를 저장할 때 시스템이 라이브러리 안의 내용을 확인하지 않기 때문에 스크립트가 승인없이 스프레드 시트에 쓰는 것이 '놀라움'이라고 할 수 있습니다. 앞서 언급 한 (더미) 호출을 포함 시키면 스크립트에서 수행 할 작업을 알게되고 첫 번째 실행 시도에 대한 권한을 요청합니다.

희망 사항 충분히 명확합니다.

+0

라이브러리에 포함 된 모든 서비스를 호출하면 문제가 해결 될 가능성이 있지만 장기적으로는별로 도움이되지 않는다고 생각합니다. 서비스를 "초기화"하고 라이브러리를 배포하는 것을 잊었다 고 가정 해보십시오. 그런 다음 사용자가 스크립트를 호출하면 지정되지 않은 권한 오류로 중지됩니다. – Stefan

관련 문제