概要
とあるサービスを開発中に祝日情報がJSON形式で欲しくなり、Google Servicesで開発した時に感じたことの備忘録
使用したもの
サービス名 | 用途 |
---|---|
Google Spreadsheet | Webブラウザでスプレッドシートを操作 |
Google Apps Script | Google SpreadsheetをJavaScriptで操作 |
goo.gl | Google Apps Scriptで公開したWebアプリのURLが長く使いづらいので、短縮したURLを生成 |
Google CalendarのICAL (設定->カレンダー->日本の祝日->カレンダーのアドレス->ICAL) |
iCalendar形式での祝日情報の取得 |
Google Apps Script
- 自分が使用したメソッドをリストアップ
クラス | 戻り値 | メソッド(引数) | 用途 |
---|---|---|---|
Logger | Logger | log( data ) | ログ出力 |
PropertiesService | Properties | getScriptProperties() | スクリプト単位のプロパティの取得 |
Properties | Properties | setProperty( key, value ) | プロパティの設定 |
String | getProperty( key ) | プロパティの取得 | |
SpreadsheetApp | Spreadsheet | create( name ) | スプレッドシートの作成 |
Spreadsheet | openById( id ) | スプレッドシートを開く | |
Spreadsheet | String | getId() | スプレッドシートのID取得 |
Sheet | getSheetByName( name ) | シートの取得 | |
Integer | getNumSheets() | シート数の取得 | |
Sheet | insertSheet( sheetName, sheetIndex ) | シートの追加 | |
Sheet | Range | getRange( row, column ) | セル範囲の取得 |
Range | getRange( row, column, numRows, numColumns ) | セル範囲の取得 | |
Range | getDataRange() | データが入力されているセル範囲の取得 | |
Integer | getLastColumn() | データが入力されている最後の列数の取得 | |
Integer | getLastRow() | データが入力されている最後の行数の取得 | |
Range | Range | setValue( value ) | セルに値を設定 |
Range | setValues( values ) | セルに値を設定 | |
Object | getValue() | セルから値を取得 | |
Object[][] | getValues() | セルから値を取得 | |
Integer | getColumn() | セルの列番号を取得 | |
Integer | getRow() | セルの行番号を取得 | |
Integer | getMaxColumns() | シートの最大列数の取得 | |
Integer | getMaxRows() | シートの最大行数の取得 | |
Range | setFontColor( color ) | 文字色の設定 | |
Range | setHorizontalAlignment( alignment ) | 水平方向の配置の設定 | |
Range | setVerticalAlignment( alignment ) | 垂直方向の配置の設定 | |
Range | setWrap( isWrapEnabled ) | 折り返しの有無の設定 | |
UrlFetchApp | HTTPResponse | fetch( url, params ) | HTTP通信を行う |
HTTPResponse | String | getContentText() | HTTPレスポンスのコンテンツをテキストで取得 |
ContentService | TextOutput | createTextOutput( content ) | テキストコンテンツを生成 |
TextOutput | TextOutput | setMimeType( mimeType ) | MIMEタイプの設定 |
String | getContent() | テキストコンテンツの取得 |
- 注意点
問題 | 対策 |
---|---|
Logger.log()の使用状況が限定される - 通信ごとにリセットされる - POSTメソッド実行時には表示できない |
ログ出力専用シートを作成し、1ログを1セルに保存する |
ライブラリを利用する側でライブラリのデベロッパーモードを有効にするときは注意が必要 | デベロッパーモードが無効の場合は指定したバージョンが使用されるが、有効な場合はリアルタイムな状況のライブラリが使われることになるので、注意。 ただし、ライブラリとライブラリを利用するスクリプトを並行して開発する場合は有効にしておくと便利なので、最初は有効にしておきライブラリが安定したときに無効にするとGood! |
公開したライブラリのバージョン削除は慎重に行う必要がある | Webアプリの場合、Webアプリとして公開した最新のバージョンは削除できないが、ライブラリの場合はライブラリとして利用されているバージョンでも削除できる。 もし、使用していたライブラリのバージョンが削除された場合は、実行時にライブラリが見つからずにエラーになる |
成果物
サービス名 | Google Apps Script公開形式 |
---|---|
ogas | ライブラリ |
holiday | Webアプリ |
まとめ
- JavaScriptでスプレッドシートを操作すると気持ちいいので、Let's challenge!
- Googleが超ヤバイ!