ユーザーは、自分のデータにアクセスするスクリプト プロジェクトまたはユーザーに代わって動作するスクリプト プロジェクトを承認する必要があります。ユーザーが初めて認証を必要とするスクリプトを実行すると、UI に認証フローを開始するためのプロンプトが表示されます。
このフローでは、スクリプトが権限を求める操作が UI でユーザーに通知されます。たとえば、スクリプトがユーザーのメール メッセージを読み取る権限や、カレンダーに予定を作成する権限を求める場合があります。スクリプト プロジェクトでは、これらの個々の権限を OAuth スコープとして定義します。
ほとんどのスクリプトの場合、必要なスコープが自動的に検出されます。スクリプトで使用されているスコープを表示できます。URL 文字列を使用して、manifestでスコープを明示的に設定することもできます。公開されるアプリは常に可能な限り狭いスコープを使用する必要があるため、アドオンなどの特定のアプリでは、スコープを明示的に設定することが必要になることがあります。
認可フロー中に、Apps Script は必要なスコープの人間可読の説明をユーザーに提示します。たとえば、スクリプトでスプレッドシートへの読み取り専用アクセス権が必要な場合は、マニフェストのスコープが https://www.googleapis.com/auth/spreadsheets.readonly
になります。承認フローで、このスコープのスクリプトは、このアプリケーションに「Google スプレッドシートの表示」を許可するようユーザーに求めます。
一部のスコープに他のスコープが含まれる場合があります。たとえば、スコープ https://www.googleapis.com/auth/spreadsheets
を承認すると、スプレッドシートに対する読み取りと書き込みのアクセスが許可されます。
スコープの表示
スクリプト プロジェクトで現在必要なスコープを確認する手順は次のとおりです。
- スクリプト プロジェクトを開きます。
- 左側の [概要] をクリックします。
- [プロジェクトの OAuth スコープ] でスコープを確認します。
明示的なスコープの設定
Apps Script では、スクリプトを必要とする関数呼び出しのコードをスキャンして、スクリプトに必要なスコープを自動的に決定します。ほとんどのスクリプトではこれで十分で、時間を節約できますが、公開済みのアドオン、ウェブアプリ、Google Chat アプリ、Google Chat API の呼び出しでは、スコープをより直接的に制御する必要があります。
Apps Script では、プロジェクトに非常に許可の範囲の広いスコープが自動的に割り当てられることがあります。これは、スクリプトが必要な以上の情報をユーザーに求めていることを意味します。これは好ましい方法ではありません。公開されているスクリプトの場合、広範なスコープを、スクリプトのニーズに対応できる制限されたセットに置き換える必要があります。
スクリプト プロジェクトで使用するスコープを明示的に設定するには、マニフェスト ファイルを編集します。マニフェスト フィールド oauthScopes
は、プロジェクトで使用されるすべてのスコープの配列です。プロジェクトのスコープを設定する手順は次のとおりです。
- スクリプト プロジェクトを開きます。
- 左側の [プロジェクト設定] をクリックします。
- [「appsscript.json」マニフェスト ファイルをエディタで表示する] チェックボックスをオンにします。
- 左側の [エディタ] をクリックします。
- 左側の
appsscript.json
ファイルをクリックします。 - 最上位の
oauthScopes
フィールドを見つけます。存在しない場合は、追加できます。 oauthScopes
フィールドは、文字列の配列を指定します。プロジェクトで使用するスコープを設定するには、この配列の内容を、使用するスコープに置き換えます。次に例を示します。{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- 上部の保存アイコン( )をクリックします。
OAuth の確認
特定の OAuth スコープは、Google のユーザーデータへのアクセスを許可するため、機密性が高いスコープです。スクリプト プロジェクトでユーザーデータへのアクセスを許可するスコープを使用している場合、ウェブアプリまたはアドオンとして一般公開するには、プロジェクトを OAuth クライアントの確認に合格させる必要があります。詳細については、次のガイドをご覧ください。
制限付きスコープ
センシティブ スコープに加えて、特定のスコープは制限付きとして分類され、ユーザーデータの保護に役立つ追加のルールが適用されます。1 つ以上の制限付きスコープを使用するウェブアプリまたはアドオンを公開する場合は、公開前に、指定されたすべての制限に準拠する必要があります。
公開を試みる前に、制限付きスコープの一覧を確認してください。アプリがこれらの指標を使用している場合は、公開する前に特定の API スコープの追加要件に準拠する必要があります。