저는 비주얼라이제이션에 액세스하는 사람들에게 스프레드 시트에 직접 권한을 부여하지 않고 Google Chart API를 사용하여 Google 스프레드 시트를 쿼리 할 수있는 프록시를 작성하려고합니다. 그렇게하기 위해Google App Script의 UrlFetch 서비스에서 Google Charts API를 호출하려면 어떻게해야합니까?
, 나는 (JSONP와) 내 애플리케이션 스크립트 프록시의 호출에 의해
var query = new google.visualization.Query('http://spreadsheets.google.com/tq?key=THE_KEY');
query.send(handleQueryResponse);
처럼 전화를 교체합니다.
나는 다음과 같은 프록시를 썼다 : (나는 함수의 결과를 캡슐화 나중에 옵션을 추가 할 것입니다 - JSONP)function doGet(e) {
return ContentService
.createTextOutput(
UrlFetchApp
.fetch("http://spreadsheets.google.com/tq?tq="+e.parameter.q+"&key="+e.parameter.key))
.setMimeType(ContentService.MimeType.JSON);
}
응답을 얻으려고, 나는이 오류를 얻을 : google.visualization.Query.setResponse({"version":"0.6","status":"error","errors":[{"reason":"user_not_authenticated","message":"User not signed in","detailed_message":"\u003ca target=\u0022_blank\u0022 href=\u0022https://spreadsheets.google.com/spreadsheet/\u0022\u003eSign in\u003c/a\u003e"}]});
사용자가 인증되지 않은 경우와 같습니다. 필자의 스크립트는 스프레드 시트에 권한이있는 내 사용자에 의해 실행될 웹 응용 프로그램으로 배포되기 때문에 이상하다고 생각합니다. 우리는 일부 OAuth
을 사용해야한다고 생각하지만, 그런 식으로 쿼리를 인증하는 방법을 모르겠습니다.
내 질문 : Apps 스크립트로 쿼리를 인증하여 웹 앱으로 배포 할 때 정의한 액세스 권한이있는 데이터에 액세스하는 방법은 무엇입니까?