[d3] google apps script勉強会(再)

37
Google Apps Script勉強会() GASでルーチンワークを自動化しよう

Upload: mikesorae

Post on 16-Apr-2017

1.011 views

Category:

Software


0 download

TRANSCRIPT

Google Apps Script勉強会(再)

GASでルーチンワークを自動化しよう

GASとは● Googleが提供するScript実行環境

● Gmail、Google Drive、Google Calendar等Googleが提供するサービス群にアク

セスするAPIが利用できる

● JavaScriptで記述することができる

● 実行環境は全てCloud上にあるため、自前サーバもIDEも不要

必要なもの

必要なもの

Googleアカウント

以上

どんなことに使える?

ルーチンワークの自動化

● 定形メールの自動送信

● 集計処理の自動化

● カレンダー予約、リマインドの自動化

開発サポートツールの作成

● json、html等のテンプレート出力

● Mock APIの作成

● ユーザフィードバックの収集

● その他開発補助ツールの作成等

便利アプリの作成

● 簡単なGUIアプリの作成

● HTMLメールの送信

How To Start

STEP1: Googleアカウントの作成

省略

Step2: Google Spread Sheetの作成

Googleの右上のメニューからドライブを選択してスプレッドシートを作成

STEP3: スクリプトエディタの起動

Spread Sheetのメニューで「スクリプト エディタ」を起動

STEP4: スクリプトを作成

メッセージボックスに "Hello World!"を表示するスクリプトです。

STEP5: スクリプトの実行

初回実行時は承認を求められます。

スプレッドシートに戻ると・・・

基本的な使い方

スプレッドシート操作

var sheet = SpreadsheetApp.getActive();var cell = sheet.getRange("A1");cell.setValue("test");

Gmail送信

GmailApp .sendEmail( "[email protected]" , "Test件名" , "test本文" , { from: "[email protected]", name: "GAS TEST" } );

Googleカレンダーの登録

var event = {"summary": "Event Title","start": {

"dateTime": "2016-04-20T13:00+08:00"},"end": {

"dateTime": "2016-04-20T18:00+08:00"}

}

Calendar.Events.insert({"calendarId": "","resource": event

});

問い合わせフォーム

var form = FormApp.create("New Form");form.addCheckBoxItem();form.addMultipleChoiceItem();form.addPageBreakItem();form.addDateItem();form.addGridItem();

Google Translate

var japanese = LanguageApp .translate('This is a pen', 'en', 'ja');

Logger.log(japanese);

Google Map

function doGet(event) { var map = Maps.newStaticMap() .setSize(600, 600) .setCenter('東京都渋谷区渋谷2-15-1');

map.setMarkerStyle(Maps.StaticMap.MarkerSize.MID ,Maps.StaticMap.Color.RED, 'B'); map.addMarker('東京都渋谷区渋谷2-15-1');

var app = UiApp.createApplication().setTitle('ビズリーチ'); app.add(app.createImage(map.getMapUrl())); return app; }

Google URL Shortener(準備)

URL Shortenerを使うためにDeveloper ConsoleでAPIを有効にします。

Google URL Shortener(URL短縮)

var url = UrlShortener.Url.insert({ longUrl: 'http://www.example.com'});

Logger.log('Shortened URL is "%s".', url.id);

Google URL Shortener(クリック回数取得)

var shortUrl = "https://goo.gl/4Vwqb2";var url = UrlShortener.Url.get(shortUrl, { projection: 'ANALYTICS_CLICKS'});

Logger.log('The URL received %s clicks this week.' , url.analytics.week.shortUrlClicks);

カスタムダイアログを作る(JavaScript部)

function showCustomDialog() { var html = HtmlService.createHtmlOutputFromFile('my_modal') .setSandboxMode(HtmlService.SandboxMode.IFRAME); SpreadsheetApp.getUi() .showModalDialog(html, 'カスタムダイアログ ');}

// カスタムイベントのコールバックfunction onButtonClick() { Logger.log("button clicked!");}

カスタムダイアログを作る(HTML部)

GoogleAppsぽい見た目にするCSS

サーバサイドスクリプトを呼び出すメソッド

定期実行

トリガーを指定して定期的にスクリプトを実行できる。

GASを使ったアプリサンプル集

Youtube動画検索アプリ

● SpreadsheetAppでスプレッドシートを捜査

● YouTube APIで動画を検索

● HTML ServiceでGUIを作成

簡単メルマガCMS● HTML ServiceでHTMLメールの本文を作成

● SpreadSheetからメールのコンテンツを取得

● URL ShortenerでリンクURLを作成

● URL Shortenerでクリック回数を取得

Slack連携 地図自動検索Bot● ユーザaSlackにキーワードを投稿

● ChatBotがキーワードからMapを作成

● ChatBotがMapのURLをSlackに投稿

Tips: 外部ライブラリ

外部ライブラリとは

● 作成したスクリプトを別のプロジェクトから参照可能

● 版管理が可能

外部ライブラリの作り方

メニュー > ファイル > プロジェクトのプロパティで作成したライブラリのプロジェクトキーを外部に公開

外部ライブラリの使い方

外部ライブラリの罠

● オリジナルのソースコードは版管理されない

● 公開されたライブラリのソースコードを知ることが出来ない

○ 悪意のあるコードがライブラリに埋め込まれいるかどうかを検知する方法がない (?)