認証スコープ

ユーザーは、データにアクセスする、または自分に代わって動作するスクリプト プロジェクトを承認する必要があります。ユーザーが初めて承認が必要なスクリプトを実行すると、UI に承認フローを開始するためのプロンプトが表示されます。

このフローにおいて、UI は、スクリプトが権限を要求する内容をユーザーに伝えます。たとえば、スクリプトは、ユーザーのメール メッセージを読み取る権限や、カレンダーで予定を作成する権限を必要とします。スクリプト プロジェクトでは、これらの個々の権限を OAuth スコープとして定義します。

ほとんどのスクリプトでは、必要なスコープが Apps Script によって自動的に検出されます。スクリプトが使用しているスコープはいつでも表示できます。URL 文字列を使用して、マニフェストスコープを明示的に設定することもできます。アドオンなどの特定のアプリケーションでは、スコープを明示的に設定する必要があります。公開アプリケーションでは常に、できる限り狭いスコープを使用する必要があるためです。

認可フロー中に、Apps Script は、必要なスコープに関する人が読める形式の説明をユーザーに表示します。たとえば、スクリプトに対するスプレッドシートの読み取り専用権限が必要な場合は、マニフェストのスコープを https://www.googleapis.com/auth/spreadsheets.readonly にします。認可フロー中、このスコープを持つスクリプトは、このアプリケーションに「Google スプレッドシートの表示」を許可するようユーザーに求めます。

スコープの中には、他のスコープが含まれているものがあります。たとえば、スコープが承認済みの場合、スコープ https://www.googleapis.com/auth/spreadsheets は、スプレッドシートへの読み取りおよび書き込みアクセスを許可します。

スコープの表示

スクリプト プロジェクトで現在必要なスコープは、次の手順で確認できます。

  1. スクリプト プロジェクトを開きます。
  2. 左側の [概要] をクリックします。
  3. [Project OAuth Scopes] でスコープを表示します。

明示的なスコープを設定する

Apps Script は、コードを必要とする関数呼び出しについてコードをスキャンすることで、スクリプトに必要なスコープを自動的に決定します。ほとんどのスクリプトではこれで十分であり、時間を節約できますが、公開済みのアドオンやウェブアプリの場合は、スコープをより直接的に制御する必要があります。

Apps Script では、非常に制限の厳しいスコープがプロジェクトに自動的に割り当てられることがあります。これは、スクリプトでユーザーに必要以上の情報を要求していることを意味するため、おすすめしません。公開されているスクリプトでは、広範なスコープを、スクリプトのニーズをカバーする、より限定されたセットに置き換える必要があります。

スクリプト プロジェクトが使用するスコープは、マニフェスト ファイルを編集することで明示的に設定できます。マニフェスト フィールド oauthScopes は、プロジェクトで使用されるすべてのスコープの配列です。プロジェクトのスコープを設定する手順は次のとおりです。

  1. スクリプト プロジェクトを開きます。
  2. 左側にある [プロジェクト設定] をクリックします。
  3. [Show "appsscript.json" manifest file in editor] チェックボックスをオンにします。
  4. 左側の [エディタ] をクリックします。
  5. 左側の appsscript.json ファイルをクリックします。
  6. oauthScopes という最上位のフィールドを見つけます。存在しない場合は追加できます。
  7. oauthScopes フィールドは、文字列の配列を指定します。プロジェクトで使用するスコープを設定するには、この配列の内容を、使用するスコープに置き換えます。例:
          {
            ...
            "oauthScopes": [
              "https://www.googleapis.com/auth/spreadsheets.readonly",
              "https://www.googleapis.com/auth/userinfo.email"
            ],
           ...
          }
    
  8. 上部の [ を保存] をクリックします。

OAuth の確認

一部の OAuth スコープは、Google ユーザーデータへのアクセスを許可するため、機密性が高いものです。スクリプト プロジェクトで、ユーザーデータへのアクセスを許可するスコープを使用している場合は、プロジェクトをウェブアプリまたはアドオンとして公開する前に、OAuth クライアントの確認を行う必要があります。詳細については、以下のガイドをご覧ください。

制限付きスコープ

機密性の高いスコープに加えて、特定のスコープが制限付きに分類され、ユーザーデータの保護に役立つ追加ルールが適用されます。1 つ以上の制限付きスコープを使用するウェブアプリまたはアドオンを公開する場合、アプリを公開する前に、指定されたすべての制限を遵守している必要があります。

公開する前に、制限付きスコープの詳細なリストを確認してください。アプリで上記のいずれかを使用する場合は、公開前に特定の API スコープの追加要件を遵守する必要があります。