ユーザーは、データにアクセスする、または自分に代わって行動するスクリプト プロジェクトを承認する必要があります。認可を必要とするスクリプトをユーザーが初めて実行すると、UI に認可フローを開始するよう求めるプロンプトが表示されます。
このフローでは、UI はスクリプトで実行する権限をユーザーに知らせます。たとえば、スクリプトでユーザーのメール メッセージの読み取り権限や、カレンダーでイベントを作成する権限が必要になる場合があります。スクリプト プロジェクトでは、これらの個々の権限を OAuth スコープとして定義します。
ほとんどのスクリプトでは、Apps Script によって必要なスコープが自動的に検出されます。スクリプトが使用するスコープをいつでも表示できます。URL 文字列を使用して、マニフェストでスコープを明示的に設定することもできます。アドオンなどの特定のアプリケーションでは、スコープを明示的に設定しなければならない場合があります。これは、公開中のアプリケーションは常に可能な限り狭いスコープを使用する必要があるためです。
認証フロー中に、Apps Script は必要なスコープに関する人が読める形式の説明をユーザーに表示します。たとえば、スクリプトがスプレッドシートへの読み取り専用アクセスを必要とする場合、マニフェストのスコープは https://www.googleapis.com/auth/spreadsheets.readonly
になります。このスコープのスクリプトは、認証フロー中に、このアプリケーションに「Google スプレッドシートの表示」を許可するようユーザーに求めます。
一部のスコープは他のスコープを含む。たとえば、スコープ https://www.googleapis.com/auth/spreadsheets
を承認すると、スプレッドシートへの読み取りと書き込みのアクセスが許可されます。
スコープの表示
スクリプト プロジェクトで現在必要なスコープは、次の手順で確認できます。
- スクリプト プロジェクトを開きます。
- 左側の [概要] をクリックします。
- [プロジェクトの OAuth スコープ] でスコープを確認します。
明示的なスコープの設定
Apps Script は、必要な関数呼び出しのコードをスキャンして、スクリプトに必要なスコープを自動的に決定します。ほとんどのスクリプトではこれで十分で時間を節約できますが、公開済みのアドオンやウェブアプリの場合は、スコープをより直接的に制御する必要があります。
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 を使用する場合は、公開前に特定の API スコープの追加要件に準拠する必要があります。