libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

Script Serviceによるスクリプトの自動制御 (3/4)

作成:2012-07-12 09:36
更新:2012-07-12 09:36

■サービスを「Service」オブジェクトで操作する

続いて、もう1つの「サービス」に関するものについて整理しましょう。サービスは「Service」オブジェクトとして用意されており、そのメソッドを使ってサービスの操作や情報を得ることができます。

●サービス情報を得る
変数 = ScriptApp.getService();
スクリプトのサービス情報を管理する「Service」オブジェクトを取得します。このオブジェクトからメソッドを呼び出してサービスを操作します。

●サービスをON/OFFする
《Service》.enable( [Restriction] );
《Service》.disable();
サービスとして公開することを開始/停止するものです。enableにより公開を開始し、disableにより停止します。enableにする場合には、引数に「どの範囲内で公開するか」を示す値を指定します。これはService.Restrictionというオブジェクトのプロパティ「ALL」「DOMAIN」「MYSELF」のいずれかを指定します。

●サービスの公開状態を調べる
変数 = 《Service》.isEnabled();
サービスとして公開中かどうかを調べます。返り値がtrueならば公開されており、falseならされていません。

●公開URLを得る
変数 = 《Service》.getUrl();
サービスとして公開されているアドレス(URL)を得るものです。返り値はテキストとして公開アドレスが得られます。


――以上でServiceのメソッドはすべてですが、この他にもう1つ、サービス関連で覚えておきたいものがあります。それは「認証」に関するものです。

●認証を無効にする
ScriptApp.invalidateAuth();
これは、スクリプトの認証を無効化するためのものです。何らかのサービスと連携したスクリプトを実行する場合、必要に応じてユーザー認証の画面が出てきて、これを承認する処理が必要となりますね? この認証を無効にするのがこのメソッドです。これを実行すると、次にスクリプトを実行する際には再び認証を行わないといけません。


では、簡単な利用例を下にあげておきましょう。これは現在のサービスの状況をチェックし、公開されていたならそれを停止して認証を無効にし、見公開ならば自分だけがアクセスできる形で公開してそのURLをログに出力する、というものです。サービス関係の基本的な使い方がこれでだいたいわかりますね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function getScript(){
  var service = ScriptApp.getService();
  var flg = service.isEnabled();
  if (flg == true){
    service.disable();
    ScriptApp.invalidateAuth();
  } else {
    service.enable(service.Restriction.MYSELF);
    Logger.log(service.getUrl());
  }
}
※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る