Google Apps Script(GAS)初回実行で認証ブロックされる事象の原因

Google Apps Script(GAS)では、スクリプトを初回実行時に認証を求められますが、この時ブロックされ許可できないケースがあります。

GASスクリプト実行がブロックされる事象について原因を紹介します。

GASスクリプト初回実行は認証が必要

Google Apps Script(GAS)のスクリプトは、コードを書いて即実行することはできません。

初めて実行する前に認証を求められて、許可する必要があります。

GASスクリプトの初回実行時の認証方法は以下の記事で解説しています。

Google Apps Script(GAS)入門 初回コード実行時の承認・許可方法を解説【図説】

この手順に従い、GASスクリプトで操作対象となるサービスやアクセスする情報に対し、許可した上で、実行が可能です。

※スプレッドシートなどのサービスと連携しない場合は、認証が発生しない例外もあります。

GAS初回認証がブロックされ、実行できない

ただ、Google Apps Script(GAS)の初回認証がブロックされる事象があります。

GASのスクリプトエディタで処理コードを記述した後、実行ボタンをクリックすると、前述した手順のように初回認証画面のウィンドウが表示されます。

Google Apps Script(GAS)の初回実行時の認証画面でアカウントを選択

実行したいGoogleアカウントを選択し、次のステップに進めようとするものの、「このアプリはブロックされます」と表示されてしまうことがあります。

Google Apps Script(GAS)の初回実行児の承認で「このアプリはブロックされます」と表示されるケース

「アカウントを安全に保つため、Googleによりこのアクセスはブロックされました。」とメッセージが表示されます。

その結果、本来であれば表示されるGASの権限許可の画面まで到達できません。

GAS初回実行の承認が不可能なため、用意したプログラムを実行不可能な状態になります。

GASスクリプト認証ブロックの原因

Google Apps Script(GAS)の初回認証がブロックされる原因として、以下の2点の可能性があります。

  1. アクセス権のないファイルにアクセス
  2. Google workspaceで組織管理者が不許可

今回のケースでは、アクセス権のないファイルにアクセスしようとしたのが原因で、GASスクリプトがブロックされました。

GASのスクリプトでスプレッドシートやGoogleドキュメントなどのファイルにアクセスする場合、スクリプト実行ユーザーは、そうした処理対象のフアィルにもアクセス権限が必要です。

それがない状態で、GASスクリプトを実行しようとすると、Googleが権限のないファイルにアクセスを試みているので不正なプログラムとしてブロックします。

その他にも有料版のGoogle Workspaceを会社などで導入している場合、組織管理者がそうした外部のGASを実行できないよう制御しており、ブロックされるケースもあります。

一度ブロックが起きると、一定期間実行不可

アクセス権限のないデータにアクセスするGoogle Apps Script(GAS)のスクリプトで認証ブロックが発生してしまうと、やっかいです。

当該のデータに権限追加して、GASスクリプトを再実行しても再度ブロックされてしまうからです。

Googleアカウントのcookieなどの履歴データを完全に削除すれば、実行できるようになります。

ただ、ここだけ削除すれば再実行できるという部分は確認できていないため、削除範囲が大きくなります。

まとめ・終わりに

今回、Google Apps Script(GAS)のスクリプト初回実行がブロックされる原因を紹介しました。

自分で作成したGASスクリプトで発生する可能性はほとんどありませんが、他人のスクリプトを共有してもらって実行した場合に起こる可能性があります。

原因としては、GASスクリプト内で読み込むスプレッドシートやGoogleドキュメント、Googleスライドなどのファイルにアクセス権限が付与されていないことです。

そうした権限がないファイルにアクセスすることをGoogleが検知し、セキュリティ観点でブロックしてしまい、GASが実行できなくなります。

一度発生すると、当該ファイルに権限を付与しても、ブロックされたままになり、履歴データの削除が必要になるため大変です。

チームやグループでGASスクリプトを共有する場合には、処理対象のファイル権限には注意しましょう。