레이블이 App Script인 게시물을 표시합니다. 모든 게시물 표시
레이블이 App Script인 게시물을 표시합니다. 모든 게시물 표시

2018년 8월 13일 월요일

[App Script] App Script를 이용한 메일 보내기


학생들에게 숙제 확인을 하거나 많은 사람을 상대할 때 반복적인 이메일 작업을 할 때가 있습니다 이럴 때 간단하게 사용할 수 있는 App Script를 소개합니다. 이내용은 Google의 아래 샘플 코드를 수정한 내용입니다.

https://developers.google.com/apps-script/articles/sending_emails

// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';
/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 2; // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 3);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var message = row[1]; // Second column
    var emailSent = row[2]; // Third column
    if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
      var subject = 'Sending emails from a Spreadsheet';
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

제목을 추가하기 위해서 다음과 같이 수정했습니다. MailApp class를 이용하여 간단하게 수신자 이메일, 제목, 내용만으로 구성했습니다.

-----------
// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';

/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 2; // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 4);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var subject = row[1];
    var message = row[2];
    var emailSent = row[3];
    if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}
----------------------



2018년 8월 4일 토요일

Google Apps Script(GAS) 소개와 Quick Start

Google Apps Script를 이용하여 업무에 활용할 수 있는 방법에 대한 설명입니다.

Google Apps Script 설명

Google Apps Script는 JavaScript를 기반한으로 한 스크립트 언어로, Google Docs, spreadsheet, presentation 과 form과 같은 Google G Suite 제품으로 다양한 일을 할 수 있도록 도와줍니다. 또한 별도의 편집기없이 브라우저에서 작성 및 편집할 수 있고, Google 서버에서 동작합니다.

Google Apps Scrtipt로 할 수 있는 일

Google Apps Script는 아래와 같은 다양한 기능을 제공합니다.

  • Google Docs, spreadsheet, presentation, form에 맞춤 메뉴, 대화상자, 사이바 추가
  • Google Spreadsheet 맞춤 함수 작성
  • 독립형 또는 Google 사이트 도구에 포함한 웹 또는 앱 게시
  • 애드센스, 웹 로그 분석, 캘린더, 드라이브, Gmail, 지도 등 Google 서비스와 상호작용
  • 추가기능(Add-on)을 만들어서 Google Docs, Spreadsheet, Slide, Form을 확장하고 스토어에 게시
  • Android 앱을 Android Add-on으로 변환하여 사용자의 휴대기기의 Google Docs, Sheet와 데이타 연동
  • 챗팅 봇을 만들어서 Hangouts Chat과 연동

사용해보기

1. script.google.com 을 방문하여 스크립터 에디터를 사용하여 아래 코드를 붙여넣기

templates/standalone/helloWorld.gs
/**  * Creates a Google Doc and sends an email to the current user with a link to the doc.  */ function createAndSendDocument() {   // Create a new Google Doc named 'Hello, world!'   var doc = DocumentApp.create('Hello, world!');   // Access the body of the document, then add a paragraph.   doc.getBody().appendParagraph('This document was created by Google Apps Script.');   // Get the URL of the document.   var url = doc.getUrl();   // Get the email address of the active user - that's you.   var email = Session.getActiveUser().getEmail();   // Get the name of the document to use as an email subject line.   var subject = doc.getName();   // Append a new string to the "url" variable to use as an email body.   var body = 'Link to your doc: ' + url;   // Send yourself an email with a link to the document.   GmailApp.sendEmail(email, subject, body); }

2. File > Save 이름 작성해서 OK

3. '▶' 를 눌러서 스크립트 실행하거나 'createAndSenddocument' 메뉴를 클릭

4. 스크립트 승인 작업

5. 확인

QuickStart

Add-on for Google Docs

Google 번역을 사용하여 선택한 텍스트를 다른 언어로 변화하는 문서 부가기능만들기
https://developers.google.com/apps-script/quickstart/docs


Quickstart: Add-on for Google Forms

Google Form을 작성하면 작성자 메일로 자동으로 이메일을 발송하는 알람기능

디버깅 방법

소스 중에서 데이타를 확인하고 싶은 부분은 다음의 코드를 입력합니다.
--------------
Logger.log(data); // https://developers.google.com/apps-script/reference/base/logger
return;  // 뒷 부분은 더 이상 실행되지 않는다.
--------------

참고 자료/링크

▶ Google Developer - Apps Script : https://developers.google.com/apps-script/
▶ 코딩야학 설명 : https://opentutorials.org/course/67/3843
▶ Codecademy - Introduction To JavaScript : https://www.codecademy.com/learn/introduction-to-javascript?composer_curriculum_redirect=javascript