Apps Script では、組み込みの Google サービスまたは高度な Google サービスの機密データにアクセスするにはユーザーの承認が必要です。
アクセス権の付与
Apps Script は、コードのスキャンに基づいて、認可スコープ(Google スプレッドシート ファイルや Gmail へのアクセスなど)を自動的に決定します。コメント化されたコードでも、認可リクエストを生成できます。スクリプトに承認が必要な場合、実行時にここに示すいずれかの承認ダイアログが表示されます。
以前に承認したスクリプトも、コード変更によって新しいサービスが追加された場合は追加の承認を求めます。スクリプト オーナーのユーザー ID で実行されるウェブアプリとしてスクリプトにアクセスする場合、スクリプトは承認をリクエストしないことがあります。
アクセス権の取り消し
スクリプトによるデータへのアクセス権を取り消す手順は次のとおりです。
- Google アカウントの権限ページにアクセスします。(今後このページにアクセスするには、Google.com にアクセスし、画面の右上にあるアカウント写真をクリックします。次に、[マイ アカウント]、[ログインとセキュリティ] の [接続済みのアプリとサイト]、[アプリを管理] の順にクリックします)。
- 承認を取り消すスクリプトの名前をクリックし、右側の [削除]、表示されたダイアログで [OK] の順にクリックします。
スクリプトの権限と種類
スクリプトが実行されるユーザー ID(およびアクセスできるデータ)は、次の表に示すように、スクリプトが実行されるシナリオによって異なります。
スクリプトの種類 | スクリプトの実行者 |
---|---|
スタンドアロン、アドオン、 ドキュメント、スプレッドシート、スライド、フォームにバインド | キーボードを操作しているユーザー |
スプレッドシートのカスタム関数 | 匿名ユーザー。ただし、割り当て上限はキーボード操作中のユーザーに対してカウントされます。 |
ウェブアプリまたはGoogle サイト ガジェット | キーボードを操作しているユーザーまたはスクリプト オーナー(アプリのデプロイ時に選択したオプションによって異なります) |
インストール可能なトリガー | トリガーを作成したユーザー |
スプレッドシート、ドキュメント、スライド、フォームの手動承認スコープ
スプレッドシート サービス、ドキュメント サービス、スライド サービス、フォーム サービスを使用するアドオンやその他のスクリプトを作成している場合は、ユーザーのすべてのスプレッドシート、ドキュメント、フォームではなく、アドオンまたはスクリプトが使用されているファイルへのアクセスのみを許可するように、承認ダイアログを強制的に表示できます。これを行うには、ファイルレベルのコメントに次の JsDoc アノテーションを含めます。
/**
* @OnlyCurrentDoc
*/
反対のアノテーション @NotOnlyCurrentDoc
は、スクリプトに @OnlyCurrentDoc
を宣言するライブラリが含まれているが、マスター スクリプトで実際には現在のファイル以外のファイルへのアクセスが必要な場合に使用できます。
アドオンの承認ライフサイクル
Google スプレッドシート、ドキュメント、スライド、フォームのアドオンは、通常、ドキュメントにバインドされたスクリプトと同じ認可モデルに従います。ただし、特定の状況では、onOpen(e)
関数と onEdit(e)
関数が認可なしモードで実行され、追加の複雑さが生じます。詳しくは、アドオンの承認ライフサイクルに関するガイドをご覧ください。
OAuth アプリケーションのユーザー数の上限
OAuth を使用して Google ユーザーデータにアクセスするアプリ(Apps Script プロジェクトなど)には、承認の上限が適用されます。詳細については、OAuth アプリケーション ユーザーの上限をご覧ください。