見出し画像

GAS|ライブラリを利用する|リソース|Javascript|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

その一部の処理は、GAS の各プロジェクトで共有できるように、「ライブラリ」として作成しています。

GAS では、作成したプロジェクトを「実行可能 API として導入」するだけで、そのプロジェクトは「ライブラリ」になります。そうして作成した「ライブラリ」を自分の他プロジェクトで利用することもできますし、見知らぬ誰かが作成し公開した「ライブラリ」もまた同様に利用することができます

「ライブラリ」を利用する

自分、あるいは、誰かが作成した「ライブラリ」を利用するために、プロジェクトへ追加するには、以下の通り、「リソース」から「ライブラリ...」を選択します。

「スクリプト ID(旧プロジェクト キー)」を追加する

ライブラリの設定には、「スクリプト ID」(後述)を使います。以下のように、「ライブラリを追加」欄に「スクリプト ID」を入力します。

説明文には「ライブラリのプロジェクト キーを入力してください」と書かれていますが、「プロジェクト キー」はサポート終了していますので、「スクリプト ID」を入力しましょう。

※「図書館」はきっと「ライブラリ」のことです

「スクリプト ID」とは、各プロジェクトに割り当てられた一意な ID です。この一意な「スクリプト ID」が各々公開されていて、それを皆が使っているのです。

例えば、「マンガポスト日本版」では、「Underscore」というライブラリを利用しています。この「Underscore」のプロジェクト キーは以下のサイトに記載の通り、「M3i7wmUA_5n0NSEaa6NnNqOBao7QLBR4j」です(スクリプト ID は公開されていないので仕方がない)。

「バージョン」と「識別子」を設定する

「スクリプト ID(旧プロジェクト キー)」を「追加」すると、以下のように設定されます。利用したい「バージョン」を選択し、「識別子」を決定します。

「識別子」は、デフォルトでは「タイトル」と同じものが入力済みになっています。これは、利用者が自由に変更可能ですが、日本語(プログラム言語以外)は入力不可能です。もし入力してしまった場合は、「指定された識別子は有効な Javascript の変数名ではありません。」という警告が表示されます。

ライブラリは、「識別子.メソッド()」と実装して利用します。

Check to see if the default Identifier name is the one that you would like to use with this library. This is the name that your script uses to refer to the library. For example, if you set it to Test then you could call a method of that library as follows: Test.libraryMethod().

以下は、ライブラリ「ISBNValidator(=識別子)」を追加した後、実装しようとした場合の例です。

また、プロジェクト内で重複した識別子が存在すると上書き(オーバーライド)されてしまいますので、命名には注意が必要です。最後に追加されたライブラリが有効になります。

If you use an identifier name that matches the name of an already existing service, such as MailApp, or a previously added library, then the library you have added most recently overrides the existing service/library.

「デベロッパーモード」について

「デベロッパーモード」は ON にすると、以下のように UI が緑にスイッチされます。しかし、殆どの場合、ON にする必要はないでしょう。

追加したライブラリに対して、「編集者レベル」の権限を持っている場合、選択したバージョンに関係なく、最新の変更を利用することが可能です。

これは主に、デバッグの機能ですので、見知らぬ誰かが作成したライブラリに対して「デベロッパーモード」を ON にしても意味がありません。

1. Anyone who has editor-level access to the script has the latest changes made to the files in the library project even if it was not saved as a version.
2. The autocomplete is still generated based on the selected version.
3. Anyone with only the read-level access to the script still uses the selected version regardless of whether the development mode is on or off.

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

人類は今、かつてない戦争をしている。敵は「ギタイ」と呼ばれる化物。ジャパンの南方、コトイウシ島で繰り返される戦闘。初年兵であるキリヤ・ケイジと戦場の牝犬と呼ばれるリタ・ヴラタスキは、まだ見ぬ明日を求める戦いに身を投じていく――。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?