Quantcast
Channel: いつも隣にITのお仕事
Viewing all articles
Browse latest Browse all 2105

新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点

$
0
0

新IDE×GAS本[第2版] 16章 Baseサービス

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASの新IDEで「詳解! Google Apps Script完全入門 [第2版]」を読み進める際のいくつかの変更点が出てきましたので連載形式でまとめています。

前回の記事はこちら。

新IDEで「GoogleAppsScript完全入門第2版【8章 スプレッドシート】」を読むときの変更点
GASの新IDEが提供開始となりました。新IDEで「詳解! Google Apps Script完全入門 [第2版]」を読み進める際に注意すべき点が出てきます。今回は「8章 スプレッドシート」についての変更点をまとめています。

「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の箇所が修正プログラム対象となります。

新IDEでLogger.log

それもそのはず、Logger.logで複数の引数を渡す場合の正しい構文は以下でした…。

Logger.log(format, values)

つまり、第一引数は文字列であるべきなのに、オブジェクトを入れてしまっていたんですね。

正しくは、以下のように書かないといけませんでした。

  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でログ出力するというものです。

実行結果はこちら。

Userオブジェクトをconsole.logとLogger.logでログ出力

console.logでは「{}」というように空のオブジェクトのように出力されてしまいますが、Logger.logではあたかもtoStringメソッドをかましたかのようにメールアドレスが表示されました。

このように、GASで提供されるオブジェクトの確認には、Logger.logのほうが有効な場合があります。

P465: consoleクラスによるログ出力

P467のサンプル16-2-2は、4つのログレベルのログを確認するというものです。

新IDEでは、以下のようにスクリプトエディタの実行ログで、それぞれのレベルによる出力の違いを確認できるようになりました。

新IDEで各ログレベルのログを確認

16-3 セッションとユーザー

P470 SessionクラスとUserクラス

P471 サンプル16-3-1はSessionクラス、Userクラスの各メソッドで取得できる値を出力するというものです。

このgetActiveUserLocaleメソッドの戻り値について、本来であれば、本書の通り「ja」が期待される値なのですが、新IDEでは以下のように「en_US」と出力されました。

新IDEでのgetActiveUserLocaleメソッドの戻り値
旧IDEに切り替えると「ja」と表示されます。

あまり使用頻度の高いメソッドではないとは思いますが、現時点でフィックスされていないバグかも知れません。

まとめ

以上、新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点についてお伝えしました。

次回は、「20章 プロパティサービス」についてお伝えします。

どうぞお楽しみに!

連載目次:新IDEでGAS本第2版を読み進めるときの注意点

Google Apps Scriptの新しい開発環境(通称「新IDE」)が、2020/12/7から順次提供開始となりました。 本書は、アップデート前の通称「旧IDE」を前提として書いておりますので、新IDEを使っている場合は、いくつか変更された点があります。以下連載形式でまとめていきます。ぜひご確認くだいませ!
  1. 新IDEで「GoogleAppsScript完全入門第2版【2-1 はじめてのGAS】」を読むときの変更点
  2. 新IDEで「GoogleAppsScript完全入門第2版【2-2 プロジェクトとスクリプト】」を読むときの変更点
  3. 新IDEで「GoogleAppsScript完全入門第2版【2-3 スクリプトエディタの編集機能(前半)】」を読むときの変更点
  4. 新IDEで「GoogleAppsScript完全入門第2版【2-3 スクリプトエディタの編集機能(後半)】」を読むときの変更点
  5. 新IDEで「GoogleAppsScript完全入門第2版【2-4 ログとデバッグ】」を読むときの変更点
  6. 新IDEで「GoogleAppsScript完全入門第2版【2-5 権限と許可】【2-6 ヘルプの活用】」を読むときの変更点
  7. 新IDEで「GoogleAppsScript完全入門第2版【3章 基本構文】【4章 制御構文】」を読むときの変更点
  8. 新IDEで「GoogleAppsScript完全入門第2版【5章 関数】【6章 クラスとオブジェクト】」を読むときの変更点
  9. 新IDEで「GoogleAppsScript完全入門第2版【7章 JavaScriptの組み込みオブジェクト】」を読むときの変更点
  10. 新IDEで「GoogleAppsScript完全入門第2版【8章 スプレッドシート】」を読むときの変更点
  11. 新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点
The post 新IDEで「GoogleAppsScript完全入門第2版【16章 Baseサービス】」を読むときの変更点 first appeared on いつも隣にITのお仕事.

Viewing all articles
Browse latest Browse all 2105