기타

파일 다운로드 및 업로드

function sendHttpPost() {
  // Download a file now (GET), so we can upload it in the HTTP POST below.
  const response = UrlFetchApp.fetch('https://www.google.com/favicon.ico');
  const fileBlob = response.getBlob();

  const payload = {
      'fieldOne' : 'value for field one',
      'fieldTwo' : 'value for field two',
      'fileAttachment': fileBlob
  };

  // Because payload is a JavaScript object, it will be interpreted as
  // an HTML form. (We do not need to specify contentType; it will
  // automatically default to either 'application/x-www-form-urlencoded'
  // or 'multipart/form-data')

  const options = {
      'method' : 'post',
      'payload' : payload
  };

  UrlFetchApp.fetch('http://example.com/upload_form.cgi', options);
}

파일 압축 및 압축 풀기

function zipUnzip() {
  const googleFavIconUrl = 'https://www.google.com/favicon.ico';
  const googleLogoUrl = 'https://www.google.com/images/srpr/logo3w.png';

  // Fetch the Google favicon.ico file and get the Blob data.
  const faviconBlob = UrlFetchApp.fetch(googleFavIconUrl).getBlob();
  const logoBlob = UrlFetchApp.fetch(googleLogoUrl).getBlob();

  // zip now references a blob containing an archive of both faviconBlob and
  // logoBlob.
  const zip = Utilities.zip([faviconBlob, logoBlob], 'google_images.zip');

  // This will now unzip the blobs.
  const files = Utilities.unzip(zip);
}

CSV 파일 구문 분석

function parseCsv() {
  // This will create a 2 dimensional array of the format
  // [[a, b, c], [d, e, f]]
  const csvString = 'a,b,c\nd,e,f';
  const data = Utilities.parseCsv(csvString);
  console.log(data);
}

문자열 포맷

function formatString() {
  // You can use sprintf-like string formatting using '%'-style format
  // strings.

  // will be: '123.456000'
  Utilities.formatString('%11.6f', 123.456);

  // will be: '   abc'
  Utilities.formatString('%6s', 'abc');
}

Base64로 문자열 인코딩 및 디코딩

function base64Encoding() {
  // base64 encoding is used to encode binary data to a text format
  // you may need to do this if your transfer method can't handle spaces,
  // non-English characters, etc.

  // We'll instantiate a blob here for clarity.
  const blob = Utilities.newBlob('A string here');

  // Let's return the blob data as a byte[].
  const encoded = Utilities.base64Encode(blob.getBytes());

  // This will log 'QSBzdHJpbmcgaGVyZQ=='
  console.log(encoded);

  const decoded = Utilities.base64Decode(encoded);

  // This will log the original string.
  console.log(Utilities.newBlob(decoded).getDataAsString());
}

계정 시간대의 날짜가 포함된 문자열 가져오기

function getDateStringInTimeZone() {
  // Default to the current date and time. For a particular date, pass a
  // date string to new Date() such as
  // "February 17, 2016 13:00:00 -0500". Always include a timezone
  // specifier in the date string, or the date string may be interpreted
  // using a different timezone than you intend.
  const date = new Date();

  // Default to the account timezone. To customize, see
  // https://developers.google.com/google-ads/api/reference/data/codes-formats#timezone-ids
  // e.g. const timezone = "Europe/Berlin"
  const timeZone = AdsApp.currentAccount().getTimeZone();

  // For other formats, see
  // https://developers.google.com/apps-script/reference/utilities/utilities#formatdatedate-timezone-format
  // If constructing a new date from the returned date string, be sure the
  // format includes the time zone letter 'Z', or the date string may be
  // interpreted using a different timezone than you intend.
  const format = 'MMM dd, yyyy HH:mm:ss Z';
  return Utilities.formatDate(date, timeZone, format);
}

과거 날짜 가져오기

function getDateInThePast() {
  // Number of milliseconds in a day.
  const MILLIS_PER_DAY = 1000 * 60 * 60 * 24;

  // Default to the current date and time. For a particular date, pass a
  // date string to new Date() such as
  // "February 17, 2016 13:00:00 -0500". Always include a timezone
  // specifier in the date string, or the date string may be interpreted
  // using a different timezone than you intend.
  const date = new Date();

  // Number of days in the past.
  const numDays = 3;

  return new Date(date.getTime() - numDays * MILLIS_PER_DAY);
}