Quantcast
Channel: 学習ノート - 継続は力なり
Viewing all articles
Browse latest Browse all 67

サーバーレスでコードを実行可能な「Google Apps Scripts」に入門する

$
0
0

タダです。

最近、「Google Apps Scripts」(以下、GAS)を下記の書籍を読みながら勉強し始めました。業務の自動化や外部サービスとの連携ハブとして利用される文脈で登場する印象ですが、僕自身も興味があるサービスであったので実践的に使えるようになりたいと思ったのがモチベーションになります。

今回は、GAS について書籍で学んだことをまとめていきます。

GAS とは

GAS はクラウド上でスクリプトを実行することができるサービスで、ベースは JavaScriptになっています。簡単な Hello Worldを表示するためのコードを見ていただくとわかりやすいかと思います。

function myFunction() {
  Logger.log("Hello World");
}

f:id:sadayoshi_tada:20190406212748p:plain

また、GAS の特徴として次のものがあります。

Googleサービスとの連携

例えば、 Gmailのアカウントから GAS でメールを送ることもできます。Gmailのアドレスから携帯アドレスに送ってみましたらちゃんと届きました。

function myFunction() {var recipient = "送信したいメールアドレス";
  var subject = "テストメールです";
  var body = "こんにちは! \n現在の時刻は" + newDate() + "です";
  GmailApp.sendEmail(recipient, subject, body);
}

f:id:sadayoshi_tada:20190406223509p:plain

また、カレンダーにイベントの登録も可能です。

function myFunction() {
  createCalendar( "テストイベント", 2019, 4, 7);
}function createCalendar(title,year,month,day) {var calendar = CalendarApp.getCalendarById("Gmail のアドレス");
  var date = newDate(year,month-1,day);
  calendar.createAllDayEvent(title, date);
}

f:id:sadayoshi_tada:20190406214920p:plain

GAS の特有機能について

特筆すべきは、GAS には次のような JavaScriptで実行できない特有のメソッドやクラスが用意されているので、試しにUrlFetchAppを使って外部ドメインへアクセスしてみます。

機能名 役割
UrlFetchApp 外部ドメインのサービスへアクセスし、利用可能
Charts グラフなどの図を作成し、利用可能
PropertiesService KEY-VALUE形式で値を保持し、スクリプト間で使いまわせる

試しに Yahoo!の天気情報にアクセスしてみると、アクセスした結果がコンテンツとして返されました。

function myFunction() {var html = getResource("https://weather.yahoo.co.jp/weather/jp/13/4410/13104.html");
  // ログ出力
  Logger.log(html);
}function getResource(url) {var response = UrlFetchApp.fetch(url);
  var contentText = response.getContentText();
  return contentText;
}

f:id:sadayoshi_tada:20190406224626p:plain

GAS から Slack への投稿

外部サービスとの連携させるようになりたいので、Slack と GAS を連携してみます。 Slack の Incoming Webhooks機能を使って GAS からメッセージを Slack に投稿してみました。

function doPost() {var url = "Incoming Webhooks のURL";
  var payload = {"text": "GASからのSlack投稿テストです"};
  var options = {"method": "post",
    "payload": "payload="+ JSON.stringify(payload)
  };
  UrlFetchApp.fetch(url, options);
}

f:id:sadayoshi_tada:20190406223112p:plain

まとめ

GAS の入門として Googleのサービスや外部サービスとも連携させる方法を学びました。

次はもっと他のサービスとも連携させて GAS を使ってみた結果をレポートします。


Viewing all articles
Browse latest Browse all 67

Latest Images

Trending Articles





Latest Images