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 アプリケーションのユーザー制限をご覧ください。