본 Post에서는 Web App으로 배포한 Script를 Bound script에서 호출하기 위한 과정을 설명한다.

먼저 내가 이 문제로 골머리를 앓을 때, 많은 도움이 된 Google+ Commnity에 감사드린다.

아래 링크는 관련 QnA의 링크이다.

https://plus.google.com/+JamesPetersen02/posts/X6jTHQsJJAU

 

Web App을 호출 하기 위한 절차는 다음과 같다.

  1. Web App Owner의 Oauth Token 확인
  2. Bound script에서 Authorization Code 추가

 

Oauth Token 확인

function getAToken() {
DriveApp.getRootFolder();
Logger.log(ScriptApp.getOAuthToken());

스크립트 편집기를 열어서 위 예제와 같이 입력하고 실행한 후, “로그”를 확인해서 OAuth 값을 얻는다.

Bound script에서 Web App 호출

  1. Web App호출시에는 UrlFetchApp API를 이용한다.
  2. 호출할 Web App의 주소가 필요한다. 이 주소는 Web App을 게시할 때 표시되므로 미리 복사해 두는 것이 좋다.
  3. 위의 단계에서 얻었던 OAuth 값을 아래 Oauth Token 값 영역에 복사한다.
  4. parameters 내의 headers필드에 ‘Authorization’:’Bearer’ + OAuth 값 을 지정한다.
  5. method는 ‘post’를 사용할 수 도 있다. (단, 이때 Web App에서 doPost() 를 구현해두어야 한다.)

아래 예제는 실제 예제로 Web App주소와 Oauth Token 값만 실제 값으로 대체해서 사용하면 된다.

var url = web_app_주소;
var OautoToken = Oauth_Token_값;
var parameters = { method : ‘get’,
headers : {‘Authorization’: ‘Bearer’+ OautoToken},
contentType:’application/json’,
muteHttpExceptions:true};

var response = UrlFetchApp.fetch(url, parametes).getContentText();

 

Advertisements