Google サービスの承認

Apps Script では、組み込みの Google サービスまたは高度な Google サービスからプライベート データにアクセスするために、ユーザーの承認が必要です。

アクセス権の付与

Apps Script は、コードのスキャンに基づいて、承認スコープ(Google スプレッドシート ファイルや Gmail へのアクセスなど)を自動的に決定します。コメントアウトされたコードでも、認証リクエストを生成できます。スクリプトに承認が必要な場合は、実行時にここに示されている承認ダイアログのいずれかが表示されます。

以前に承認したスクリプトでも、コードの変更によって新しいサービスが追加された場合は、追加の承認が求められます。スクリプトの所有者のユーザー ID で実行されるウェブアプリとしてスクリプトにアクセスする場合、スクリプトは承認をリクエストしないことがあります。

アクセス権の取り消し

スクリプトのデータへのアクセス権を取り消す手順は次のとおりです。

  1. Google アカウントの権限ページにアクセスします。(今後このページにアクセスするには、Google.com にアクセスし、画面の右上にあるアカウントの写真をクリックします。次に、[マイアカウント]、[ログインとセキュリティ] セクションの [接続済みのアプリとサイト]、[アプリを管理] の順にクリックします)。
  2. 承認を取り消すスクリプトの名前をクリックし、右側の [削除] をクリックして、表示されたダイアログで [OK] をクリックします。

権限とスクリプトの種類

スクリプトが実行されるユーザー ID(したがって、アクセスできるデータ)は、次の表に示すように、スクリプトが実行されるシナリオによって異なります。

スクリプトの種類 スクリプトの実行ユーザー...
スタンドアロンアドオン、または ドキュメント、スプレッドシート、スライド、フォームにバインドされた キーボードを使用しているユーザー
スプレッドシートのカスタム関数 匿名ユーザー。ただし、割り当て上限はキーボードのユーザーに対してカウントされます。
ウェブアプリまたは Google サイトのガジェット アプリのデプロイ時に選択したオプションに応じて、キーボードのユーザーまたはスクリプトのオーナー
インストール可能なトリガー トリガーを作成したユーザー

スプレッドシート、ドキュメント、スライド、フォームの手動承認スコープ

スプレッドシート サービスドキュメント サービススライド サービス、またはフォーム サービスを使用するアドオンやその他のスクリプトを作成している場合、承認ダイアログで、ユーザーのスプレッドシート、ドキュメント、フォームのすべてではなく、アドオンまたはスクリプトが使用されるファイルへのアクセスのみを求めるように強制できます。そのためには、ファイルレベルのコメントに次の JsDoc アノテーションを含めます。

/**  * @OnlyCurrentDoc  */ 

スクリプトに @OnlyCurrentDoc を宣言するライブラリが含まれているが、マスター スクリプトが実際には現在のファイルよりも多くのファイルへのアクセスを必要とする場合は、反対のアノテーション @NotOnlyCurrentDoc を使用できます。

アドオンの承認ライフサイクル

Google スプレッドシート、ドキュメント、スライド、フォームのアドオンは、通常、ドキュメントにバインドされているスクリプトと同じ承認モデルに従います。ただし、特定の状況では、onOpen(e) 関数と onEdit(e) 関数が認証なしモードで実行され、さらに複雑な問題が発生します。詳しくは、アドオンの認証ライフサイクルに関するガイドをご覧ください。

OAuth アプリケーションのユーザー上限

OAuth を使用して Google ユーザーデータにアクセスするアプリケーション(Apps Script プロジェクトを含む)には、承認の上限が適用されます。詳細については、OAuth アプリケーションのユーザー上限をご覧ください。

Apps Script での再認証の動作

Apps Script では、Google Cloud サービスの設定で構成した再認証の頻度は適用されません。これは、Apps Script がトリガーを使用して自動的に実行できるためです。トリガーは、ユーザーの直接操作なしで動作します。これらの自動実行では、再認証のプロンプトはトリガーされません。指定した期間(12 時間など)が経過しても、Apps Script アプリケーションから自動的に再認証を求められることはありません。