Google Apps - Google Apps Script

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Google Apps중 JavaScript와 같이 사용할 수 있는 Google Apps Script를 정리 합니다.

Google Apps Script 개요

Base Services
  • access to user, session and browser information
Mail Services
Contacts Services
  • Gmail
  • Contacts
Calendar Services
  • Calendar, Calendar events
DocsList Services
Spreadsheet Services
  • DocsList, File, Folder
  • Google Docs - Spreadsheet
Sites Services
  • Google Sites
Properties Services
  • 사용자와 스크립트에 할당된 property storage
Ui Services
  • User Inteface
UrlFetch Services
Utilities Services
  • Fetch resources and communicate with other hosts over the Internet
  • string encoding, decoding and date formatting
Soap Services
Xml Services
  • Web Services via Soap
  • XML parsing and navigation capabilities
Jdbc Services
  • JDBC 사용
  • Cloud database 서비스 구축 가능
Language Service
  • 번역
Maps Services
  • Google Maps
Finance Services
  • Google Finance

Google Apps Script 사용 위치

  • Google Apps Script 실행 방법의 종류
  • 자동 실행 : 페이지, 문서 등이 로딩되면 자동으로 실행
  • 웹서비스 방식 : URL 호출을 통하여 실행
  • 사용자 선택 방식 : 사용자의 행동에 의해 실행
  • 배치 방식 : 주기적으로 반복 실행
  • 강제 실행 방식 : 권한을 가진 사용자가 강제로 실행
  • Google Docs - Spreadsheet
  • Tools -> Scripts -> Script editor... : Google apps script 편집창이 표시됨
  • Insert -> Script... : Script Gallery에서 스크립트 삽입
  • Tools -> Scripts -> Insert... : Script Gallery에서 스크립트 삽입
  • Tools -> Scripts -> Manage... -> Run (강제 실행 방식)
  • 스프레드쉬트에서 사용자 정의 함수로서 사용 (자동 실행)
  • 스프레드쉬트 메뉴로 추가하여 사용 (사용자 선택 방식), Script를 사용하여 메뉴 추가
  • "Google 사이트 도구 - 관리" -> 사이트 콘텐츠 -> 애플리케이션 스크립트 : Google apps script 편집창이 표시됨
  • 페이지 편집 화면에서
  • 삽입 -> 링크 -> 애플리케이션 스크립트 (사용자 선택 방식)
  • 삽입 -> Apps Script Gadget (자동 실행), 매뉴얼에는 표시되어 있으나 실제로는 메뉴가 없음
  • Google apps script 편집창에서
  • 파일 -> 갤러리에서 스크립트 추가 : Script Gallery에서 스크립트 삽입
  • 실행 (강제 실행 방식)
  • 공유 -> 서비스로 게시... (웹서비스 방식)
  • User Interface as a Service : Ui Services를 사용하여 화면을 구성하고 이를 Sites 등에 표시할 수 있음
  • 트리거 -> Current script's triggers...
  • 주, 일, 시간, 분 단위로 반복되는 작업 지정 (배치 방식)
  • Spreadsheet의 On open, On edit, On form submit시 실행 (자동 실행)
  • 보기 -> 로그...
Logger.log("Updating symbol: " + symbol);
  • Event 방식으로 Google Apps Script 실행
  • onInstall() : Script Gallery에서 설치될 때
  • onOpen() : Spreadsheet가 열릴 때
  • onEdit() : Spreadsheet가 편집 되었을 때
  • "On form submit" 함수 사례
function onFormSubmit(e) {
  var timestamp = e.values[0];
  var name = e.values[1];
  var age = e.values[2];
  var submitter = e.namedValues["Username"];

  MailApp.sendEmail("email_username", "form submitted",
                  name + ", age " + age + " submitted by " + submitter + " on " + timestamp + ". ");
}

Google Apps Script Service

Base Services

Calendar Services

Contacts Services

DocsList Services

  • File View
var files = DocsList.find(searchTerm);
files[i].getName();
files[i].getType();   //--- document, spreadsheet, presentation

Finance Services

Jdbc Services

Language Services

Mail Services

MailApp.sendEmail(emailAddress, subject, message);

Maps Services

Properties Services

Sites Services

Soap Services

Spreadsheet Services

function example() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var myValue = Browser.inputBox("Enter a number"); 
  sheet.getRange("A1").setValue("Number entered:");
  var b1Range = sheet.getRange("B1");
  b1Range.setValue(myValue);

  var valueToShow = b1Range.getValue() + 1;
  Browser.msgBox("The value you entered plus one is: " + valueToShow);
}
if (typeof inNum != "number") {
   return("error: input must be a number");
 }
  • Spreadsheet 메뉴 추가
function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Say Hi", functionName: "sayHi"},
                      {name: "Say Hello", functionName: "sayHello"} ];
  ss.addMenu("Tutorial", menuEntries);
}

Ui Services

  • User Interface as a Service
  • doGet(e), doPost(e)
  • Google Web Toolkit (GWT)를 사용하여 화면이 구성됨
function doGet(e) {
  var app = UiApp.createApplication();
  return app;
}
  • 참고 문헌
  • Sample
var myapp = UiApp.createApplication().setTitle('Here is the title bar').setHeight(50).setWidth(100);
var mybutton = myapp.createButton('Press Me');

var mypanel = myapp.createVerticalPanel();
mypanel.add(mybutton);
myapp.add(mypanel);
mydoc.show(myapp);

UrlFetch Services

var response = UrlFetchApp.fetch(url, {method:'post', payload:payload, contentType:"application/x-www-form-urlencoded"});
if (response.getResponseCode() == 200) {
  return JSON.parse(response.getContentText());
}

Utilities Services

Xml Services

참고 문헌

  • Google Apps Script 매뉴얼