みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASの新IDEで「詳解! Google Apps Script完全入門 [第2版]」を読み進める際のいくつかの変更点が出てきましたので連載形式でまとめています。
前回の記事はこちら。
「8章 スプレッドシート」についてお伝えしました。
今回は「16章 Baseサービス」についてお伝えします。
では、行ってみましょう!
新IDEによるScript Servicesへの影響について
新IDEの導入が、Script Servicesで提供される各機能に、直接的に影響を与えるということはありません。
しかし、UIに関する重要な変更がいくつかあり、本書を読み進める上で、トリガーやスクリプトプロパティなど、いくつかの点については注意する必要があります。
本記事で紹介するBaseサービスでは大きな注意点はありませんが、次回以降の記事で順を追って紹介していきますので、ぜひご覧ください。
16-2 ログ
P464: consoleクラスとLoggerクラス
P464のサンプル16-2-1は、console.logメソッドとLogger.logメソッドの比較を行うというものです。
しかし、これを新IDEにて入力すると、Logger.logの引数objの箇所が修正プログラム対象となります。
それもそのはず、Logger.logで複数の引数を渡す場合の正しい構文は以下でした…。
つまり、第一引数は文字列であるべきなのに、オブジェクトを入れてしまっていたんですね。
正しくは、以下のように書かないといけませんでした。
Logger.log('%s %s', obj, obj.age); //{name=Bob, age=25.0} 25.0
しかし、このように修正せずとも、動くには動きますね。
Logger.logを用いるメリット
本書では、ログ出力の際はメインでconsole.logを使用していますが、Logger.logを用いるメリットも一部存在しています。
例えば、以下のようなコードを作成して実行してみましょう。
function logUser() {
console.log(Session.getActiveUser()); //{}
console.log(Session.getActiveUser().toString()); //メールアドレス
Logger.log(Session.getActiveUser()); //メールアドレス
}
SessionクラスのgetActiveUserメソッドで取得したUserオブジェクトを、console.logとLogger.logでログ出力するというものです。
実行結果はこちら。
console.logでは「{}」というように空のオブジェクトのように出力されてしまいますが、Logger.logではあたかもtoStringメソッドをかましたかのようにメールアドレスが表示されました。
このように、GASで提供されるオブジェクトの確認には、Logger.logのほうが有効な場合があります。
P465: consoleクラスによるログ出力
P467のサンプル16-2-2は、4つのログレベルのログを確認するというものです。
新IDEでは、以下のようにスクリプトエディタの実行ログで、それぞれのレベルによる出力の違いを確認できるようになりました。
16-3 セッションとユーザー
P470 SessionクラスとUserクラス
P471 サンプル16-3-1はSessionクラス、Userクラスの各メソッドで取得できる値を出力するというものです。
このgetActiveUserLocaleメソッドの戻り値について、本来であれば、本書の通り「ja」が期待される値なのですが、新IDEでは以下のように「en_US」と出力されました。
あまり使用頻度の高いメソッドではないとは思いますが、現時点でフィックスされていないバグかも知れません。
まとめ
以上、新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点についてお伝えしました。
次回は、「20章 プロパティサービス」についてお伝えします。
どうぞお楽しみに!
連載目次:新IDEでGAS本第2版を読み進めるときの注意点
Google Apps Scriptの新しい開発環境(通称「新IDE」)が、2020/12/7から順次提供開始となりました。 本書は、アップデート前の通称「旧IDE」を前提として書いておりますので、新IDEを使っている場合は、いくつか変更された点があります。以下連載形式でまとめていきます。ぜひご確認くだいませ!- 新IDEで「GoogleAppsScript完全入門第2版【2-1 はじめてのGAS】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【2-2 プロジェクトとスクリプト】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【2-3 スクリプトエディタの編集機能(前半)】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【2-3 スクリプトエディタの編集機能(後半)】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【2-4 ログとデバッグ】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【2-5 権限と許可】【2-6 ヘルプの活用】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【3章 基本構文】【4章 制御構文】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【5章 関数】【6章 クラスとオブジェクト】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【7章 JavaScriptの組み込みオブジェクト】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【8章 スプレッドシート】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【20章 プロパティサービス】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【21章 イベントとトリガー】」を読むときの変更点
- 新IDEで「GoogleAppsScript完全入門第2版【23章 ライブラリ】」を読むときの変更点