認証スコープ

ユーザーは、データにアクセスする、または自分の代わりに行動するスクリプト プロジェクトを承認する必要があります。ユーザーが初めて承認を必要とするスクリプトを実行すると、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. [プロジェクトの OAuth スコープ] でスコープを確認します。

明示的なスコープの設定

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

Apps Script では、非常に制限の緩いスコープがプロジェクトに自動的に割り当てられることがあります。 これは、スクリプトがユーザーに必要以上のものを求めることを意味します。これは推奨されません。公開スクリプトの場合は、広範なスコープを、スクリプトのニーズのみに対応する限定的なスコープに置き換える必要があります。

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

  1. スクリプト プロジェクトを開きます。
  2. 左側の [プロジェクトの設定] をクリックします。
  3. [「appsscript.json」マニフェスト ファイルをエディタで表示する] チェックボックスをオンにします。
  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 スコープの追加要件に準拠する必要があります。