今から始める
Google Apps Script
   2010/10/08 @都内某所
自己紹介
• 名前:ikikko
• 所属:株式会社 ヌーラボ
アジェンダ
• Google Apps Scriptの概要
• 主な機能の説明
• 注意事項

 ときどきデモを交えます
Google Apps Scriptの概要




   http://www.flickr.com/photos/darrentunnicliff/3371355414/
Google Apps Scriptとは
• Googleスプレッドシート上で、定型
  処理を自動化するためのスクリプト機能
 – Excelのマクロ機能のようなもの
 – VBAの代わりに、Javascriptで記述

 http://code.google.com/intl/en/googleapps/appsscript/
デモ
       Hello World




http://www.flickr.com/photos/bluesquarething/4285344075/
Hello World
function helloWorld() {
  var name = Browser.inputBox(“名前を入力してください”);

    // ダイアログで表示
    Browser.msgBox(“こんにちは、” + name + “ さん”);
}
Google Apps Scriptの特徴
• Webとの親和性が高い
 – 特に、Googleの他サービスとの連携が豊富
 – HTTP通信と各種フォーマット・プロトコル
   のサポート(SOAP・JSON・OAuth)
Google Apps Scriptの特徴
• 実行タイミングの柔軟な制御ができる
 – 手動実行
 – イベント駆動
  • スクリプトのインストール時
  • スプレッドシートのオープン時
  • スプレッドシートの編集時
 – 定期実行
機能一覧
•   Basic Services      •   Properties Services
•   Calendar Services   •   Sites Services
•   Contacts Services   •   Soap Services
•   DocsList Services   •   Spreadsheet Services
•   Finance Services    •   Ui Services
•   Jdbc Services       •   UrlFetch Services
•   Language Services   •   Utilities Services
•   Mail Services       •   Xml Services
•   Maps Serivces
機能一覧(有用そうなもの)
           キー・値での
• Basic Services
             永続化    •   Properties Services
• Calendar Services •   Sites Services
• Contacts Services •   Soap Services
• DocsList Services •   Spreadsheet Services
        独自のダイア
• Finance ログを作成
          Services  •   Ui Services
• Jdbc Services     •   UrlFetch Services
• Language Services •   Utilities Services
                          HTTP通信を行う
• Mail Services     •   Xml Services
• Maps Serivces
主な機能の説明


http://www.flickr.com/photos/swisscan/2918682767/
Spreadsheet Services
 • スプレッドシートを読み書きする
var name = Browser.inputBox(“名前を入力してください”);

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheets()[0];
sheet.getRange("A1").setValue(name);
Mail Services
• メールを送信する
var address = "nakamura@nulab.co.jp";
var subject = "Mail Servicesのテスト";
var body = "本文";

MailApp.sendEmail(address, subject, body);
UrlFetch Services
• HTTP通信を行う
var response =
  UrlFetchApp.fetch("http://www.nulab.co.jp/");

Browser.msgBox(response.getContentText());
デモ
backlog-template-issue
  ~ Backlogへ課題一括登録 ~




   http://www.flickr.com/photos/bluesquarething/4285344075/
構成




1. スプレッドシートから登録データ取得
2. Backlog APIを用いて、Backlogに課題登録
3. Backlogから課題登録後の登録情報を取得
4. スプレッドシートに登録結果を追記
    http://github.com/ikikko/backlog-template-issue-gas/wiki
注意事項




 http://www.flickr.com/photos/pictureperfectpose/76138988/
サーバサイドスクリプト
ブラウザによる差異がない
クロスドメイン制約がない

Windowオブジェクトの使用不可
• setInterval / setTimeout など
DOM Parserの使用不可
開発環境
どこでも開発できる
               標準で備わっている
              スクリプト履歴保存機能
テストしにくい
バージョン管理しにくい
モジュール(ファイル)
分割しにくい
APIの仕様変更
自動で機能拡張されていく

仕様をコントロールできない
クリティカルなバグがあっても
対応できない(ことがある)
いきなりサービス停止には
 ならないかと思います
ご清聴
ありがとうございました

今から始めるGoogle apps scirpt