This document contains Google Workspace Events API-specific authorization and
authentication information. Before reading this document, be sure to read the
Google Workspace's general authentication and authorization information at
[Learn about authentication and authorization](https://developers.google.com/workspace/guides/auth-overview).

## Configure OAuth 2.0 for authorization

[Configure the OAuth consent screen and choose scopes](https://developers.google.com/workspace/guides/configure-oauth-consent)
to define what information is displayed to users and app reviewers, and register
your app so that you can publish it later.

## Google Workspace Events API scopes

To define the level of access granted to your app, you need to identify and
declare *authorization scopes*. An authorization scope is an OAuth 2.0 URI string
that contains the Google Workspace app name, what kind of data it accesses, and
the level of access. Scopes are your app's requests to work with Google Workspace data, including
users' Google Account data.


When your app is installed, a user is asked to validate the scopes used
by the app. Generally, you should choose the most narrowly focused scope
possible and avoid requesting scopes that your app doesn't require. Users more
readily grant access to limited, clearly described scopes.

> [!WARNING]
> If your public application uses scopes that permit access to certain user data, it must complete a verification process. If you see **unverified
> app** on the screen when testing your application, you must submit a verification request to remove it. Find out more about [unverified apps](https://support.google.com/cloud/answer/7454865) and get answers to [frequently asked questions about app verification](https://support.google.com/cloud/answer/9110914) in the Help Center.

The Google Workspace Events API uses scopes from Google Workspace
applications that support subscriptions. If your app already uses the scopes
required for your subscription, you don't need to add scopes to use the
Google Workspace Events API. If you do add scopes, choose the least sensitive
scope that still allows your app to function. For details about scope
categories, see [Scope
categories](https://developers.google.com/workspace/guides/configure-oauth-consent#scope_categories).

The following table lists the supported scopes for the
Google Workspace Events API:

| Scope code | Description | Usage |
|---|---|---|---|---|
| **Google Chat** |   ||||
| `https://www.googleapis.com/auth/chat.bot` | Lets Chat apps view chats and send messages. Gives access to all features available to Chat apps. > [!NOTE] > **Note:** The `chat.bot` scope: > - Only supports app authentication. You can't authenticate user credentials using this scope. > - Doesn't support [domain-wide delegation](https://support.google.com/a/answer/162106). | Non-sensitive |
| `https://www.googleapis.com/auth/chat.memberships` | View, add, and remove members from conversations in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.memberships.readonly` | View members in Chat conversations. | Sensitive |
| `https://www.googleapis.com/auth/chat.app.memberships` | See, add, update, and remove members from conversations and spaces in Chat as a Chat app. Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Sensitive |
| `https://www.googleapis.com/auth/chat.app.memberships.readonly` | See members from conversations and spaces in Google Chat as a Chat app. Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Sensitive |
| `https://www.googleapis.com/auth/chat.spaces` | Create conversations and spaces and view or update metadata (including history settings) in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.spaces.readonly` | View chat and spaces in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.app.spaces` | Create conversations and spaces and view or update metadata (including history settings) in Chat as a Chat app. Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Sensitive |
| `https://www.googleapis.com/auth/chat.app.spaces.readonly` | View metadata (including history settings) in Google Chat as a Chat app. Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Sensitive |
| `https://www.googleapis.com/auth/chat.messages.reactions` | View, add, and delete reactions to messages in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.messages.reactions.readonly` | View reactions to a message in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.messages` | View, compose, send, update, and delete messages, and add, view, and delete reactions to messages. | Restricted |
| `https://www.googleapis.com/auth/chat.messages.readonly` | View messages and reactions in Chat. | Restricted |
| `https://www.googleapis.com/auth/chat.app.messages.readonly` | View messages and reactions in Chat as a Chat app. Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Restricted |
| `https://www.googleapis.com/auth/chat.users.readstate` | View and update user read state in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.users.readstate.readonly` | View user read state in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.users.availability` | View and change availability status in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.users.availability.readonly` | View availability status in Chat. | Sensitive |
| `https://www.googleapis.com/auth/chat.app.all.spaces.readonly` | See metadata about all spaces and conversations in Google Chat throughout your Google Workspace organization, even when the Chat app isn't a member. This scope is only supported with [customer subscriptions](https://developers.google.com/workspace/events/guides/create-subscription#customer-subscription). Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Restricted |
| `https://www.googleapis.com/auth/chat.app.all.memberships.readonly` | See all members in Google Chat spaces and conversations throughout your Google Workspace organization, even when the Chat app isn't a member. This scope is only supported with [customer subscriptions](https://developers.google.com/workspace/events/guides/create-subscription#customer-subscription). Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Restricted |
| `https://www.googleapis.com/auth/chat.app.all.messages.readonly` | See all messages and reactions throughout your Google Workspace organization, even when the Chat app isn't a member of a space or conversation. This scope is only supported with [customer subscriptions](https://developers.google.com/workspace/events/guides/create-subscription#customer-subscription). Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Restricted |
| `https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly` | See the last read time for all users in all spaces and conversations throughout your Google Workspace organization, even when the Chat app isn't a member. This scope is only supported with [customer subscriptions](https://developers.google.com/workspace/events/guides/create-subscription#customer-subscription). Requires [administrator approval](https://support.google.com/a?p=chat-app-auth). This scope only supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) with service accounts. You can't authenticate with user credentials or with [domain-wide delegation](https://support.google.com/a/answer/162106) using this scope. | Restricted |
| **Google Drive** |   ||||
| `https://www.googleapis.com/auth/drive.file` | Create new Drive files, or modify existing files, that you open with an app or that the user shares with an app while using the Google Picker API or the app's file picker. | Non-sensitive |
| `https://www.googleapis.com/auth/drive` | View and manage all your Drive files. | Restricted |
| `https://www.googleapis.com/auth/drive.readonly` | View and download all your Drive files. | Restricted |
| `https://www.googleapis.com/auth/drive.metadata` | View and manage metadata of files in your Drive. | Restricted |
| `https://www.googleapis.com/auth/drive.metadata.readonly` | View metadata for files in your Drive. | Restricted |
| **Google Meet** |   ||||
| `https://www.googleapis.com/auth/meetings.space.created` | Allow apps to create, modify, and read metadata about meeting spaces created by your app. | Sensitive |
| `https://www.googleapis.com/auth/meetings.space.readonly` | Allow apps to read metadata about any meeting space the user has access to. | Sensitive |

The Usage column in the preceding table indicates the sensitivity of each scope:

- **Non-sensitive** : These scopes provide the smallest scope of authorization
  access and only require basic app verification. For information on this
  requirement, see [Verification
  requirements](https://support.google.com/cloud/answer/13464321).

- **Sensitive** : These scopes provide access to specific Google User Data
  that's authorized by the user for your app. It requires you to go through
  additional app verification. For information on this requirement, see
  [Sensitive and Restricted Scope
  Requirements](https://support.google.com/cloud/answer/13464321#ss-rs-requirements).

- **Restricted** : These scopes provide wide access to Google User Data and
  require you to go through a restricted scope verification process. For
  information on this requirement, see [Google API Services: User Data
  Policy](https://developers.google.com/terms/api-services-user-data-policy) and [Additional Requirements
  for Specific API
  Scopes](https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes).
  If you store restricted scope data on servers (or transmit), then you must
  go through a security assessment.

If your app requires access to any other Google APIs, you can add those scopes
as well. For more information about Google API scopes, see [Using OAuth 2.0 to
Access Google APIs](https://developers.google.com/accounts/docs/OAuth2).

For more information about specific OAuth 2.0 scopes, see [OAuth 2.0 Scopes for
Google APIs](https://developers.google.com/identity/protocols/oauth2/scopes).

## OAuth verification

Using certain OAuth scopes might require that your app proceed through [OAuth
App Verification Help Center](https://support.google.com/cloud/answer/13463073).
Read the [OAuth app FAQs](https://support.google.com/cloud/answer/13463817) to
determine when your app should go through verification and what type of
verification is required. See also the [Drive Terms of
Service](https://support.google.com/drive/answer/2450387).

## Types of required authentication

This section explains which types of authentication are required or supported,
and provides the supported scopes for each method of the
Google Workspace Events API.

For subscriptions to Chat events, the
Google Workspace Events API supports both user and app authentication to call
some of its methods. If an API method supports both credentials, the type of
credential used in the call affects the result that's returned. For example, if
you call the
[`subscriptions.list`](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/list)
method with user authentication, the API returns a list of subscriptions that
the *authenticated user* can access. If you use app authentication, the API
returns a list of subscriptions that the *app* can access. To learn more about
the types of Chat authentication, see [Authenticate and authorize
Chat apps and Chat API
requests](https://developers.google.com/workspace/chat/api/guides/auth).

The following table displays which scopes and types of authentication are
required or supported for each Google Workspace Events API
method:

| Method | User authentication required or supported | App authentication supported (Chat apps only) | Authorization scopes supported ||
|---|---|---|---|---|
| [Create a subscription](https://developers.google.com/workspace/events/guides/create-subscription) |   | --- | With user authentication, requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.messages` - `chat.messages.readonly` - `chat.messages.reactions` - `chat.messages.reactions.readonly` - `chat.memberships` - `chat.memberships.readonly` - `chat.spaces` - `chat.spaces.readonly` - `chat.users.readstate` - `chat.users.readstate.readonly` - `chat.users.availability` - `chat.users.availability.readonly` - `drive.file` - `drive` - `drive.readonly` - `drive.metadata` - `drive.metadata.readonly` - `meetings.space.created` - `meetings.space.readonly` With [app authentication and administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) (Google Chat apps only), requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.app.memberships` - `chat.app.memberships.readonly` - `chat.app.spaces` - `chat.app.spaces.readonly` - `chat.app.messages.readonly` - `chat.app.all.memberships.readonly` - `chat.app.all.spaces.readonly` - `chat.app.all.messages.readonly` - `chat.app.all.users.readstate.readonly` ||
| [Get a subscription](https://developers.google.com/workspace/events/guides/get-subscription) |   |   | With user authentication, this method requires a scope that [supports at least one event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type) for the subscription. With app authentication (Chat apps only): - `chat.bot` ||
| [List subscriptions](https://developers.google.com/workspace/events/guides/list-subscriptions) |   |   | With user authentication, this method requires a scope that [supports at least one event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type) for the subscription. With app authentication (Chat apps only): - `chat.bot` ||
| [Update a subscription](https://developers.google.com/workspace/events/guides/update-subscription) |   | --- | With user authentication, requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.messages` - `chat.messages.readonly` - `chat.messages.reactions` - `chat.messages.reactions.readonly` - `chat.memberships` - `chat.memberships.readonly` - `chat.spaces` - `chat.spaces.readonly` - `chat.users.readstate` - `chat.users.readstate.readonly` - `chat.users.availability` - `chat.users.availability.readonly` - `drive.file` - `drive` - `drive.readonly` - `drive.metadata` - `drive.metadata.readonly` - `meetings.space.created` - `meetings.space.readonly` With [app authentication and administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) (Google Chat apps only), requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.app.memberships` - `chat.app.memberships.readonly` - `chat.app.spaces` - `chat.app.spaces.readonly` - `chat.app.messages.readonly` - `chat.app.all.memberships.readonly` - `chat.app.all.spaces.readonly` - `chat.app.all.messages.readonly` - `chat.app.all.users.readstate.readonly` ||
| [Reactivate a subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription) |   | --- | With user authentication, requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.messages` - `chat.messages.readonly` - `chat.messages.reactions` - `chat.messages.reactions.readonly` - `chat.memberships` - `chat.memberships.readonly` - `chat.spaces` - `chat.spaces.readonly` - `chat.users.readstate` - `chat.users.readstate.readonly` - `chat.users.availability` - `chat.users.availability.readonly` - `drive.file` - `drive` - `drive.readonly` - `drive.metadata` - `drive.metadata.readonly` - `meetings.space.created` - `meetings.space.readonly` With [app authentication and administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) (Chat apps only), requires a [supported scope for each event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type): - `chat.app.memberships` - `chat.app.memberships.readonly` - `chat.app.spaces` - `chat.app.spaces.readonly` - `chat.app.messages.readonly` - `chat.app.all.memberships.readonly` - `chat.app.all.spaces.readonly` - `chat.app.all.messages.readonly` - `chat.app.all.users.readstate.readonly` ||
| [Delete a subscription](https://developers.google.com/workspace/events/guides/delete-subscription) |   |   | With user authentication, this method requires a scope that [supports at least one event type](https://developers.google.com/workspace/events/guides/auth#scopes-event-type) for the subscription. With app authentication (Chat apps only): - `chat.bot` ||

### Scopes by event type

When you call the Google Workspace Events API using user authentication, you
must specify one or more scopes that correspond to the event types of the
subscription.

The following table displays which authorization scopes are supported for each
event type:

| **Events** | **Event types** | **Authorization scopes supported** |
|---|---|---|---|---|---|---|---|---|
| **Chat** |||||   ||||
| A [message](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages) is posted or updated. | - `google.workspace.chat.message.v1.created` - `google.workspace.chat.message.v1.updated` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.messages` - `chat.messages.readonly` With [App authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [administrator approval](https://support.google.com/a?p=chat-app-auth): - `chat.app.messages.readonly` - `chat.app.all.messages.readonly` |
| A [reaction](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages.reactions) is added or deleted, or multiple reactions are changed. | - `google.workspace.chat.reaction.v1.created` - `google.workspace.chat.reaction.v1.deleted` - `google.workspace.chat.reaction.v1.batchChanged` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.messages.reactions` - `chat.messages.reactions.readonly` - `chat.messages` - `chat.messages.readonly` With [App authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [administrator approval](https://support.google.com/a?p=chat-app-auth): - `chat.app.messages.readonly` - `chat.app.all.messages.readonly` |
| A [membership](https://developers.google.com/chat/api/reference/rest/v1/spaces.members) is created, updated, or removed, or multiple memberships are changed. | - `google.workspace.chat.membership.v1.created` - `google.workspace.chat.membership.v1.updated` - `google.workspace.chat.membership.v1.deleted` - `google.workspace.chat.membership.v1.batchChanged` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.memberships` - `chat.memberships.readonly` With [App authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [administrator approval](https://support.google.com/a?p=chat-app-auth): - `chat.app.memberships` - `chat.app.memberships.readonly` - `chat.app.all.memberships.readonly` |
| A [space](https://developers.google.com/chat/api/reference/rest/v1/spaces) is updated or deleted. | - `google.workspace.chat.space.v1.updated` - `google.workspace.chat.space.v1.deleted` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.spaces` - `chat.spaces.readonly` With [App authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [administrator approval](https://support.google.com/a?p=chat-app-auth): - `chat.app.spaces` - `chat.app.spaces.readonly` - `chat.app.all.spaces.readonly` |
| A user's [space read state](https://developers.google.com/chat/api/reference/rest/v1/users.spaces/getSpaceReadState) or [thread read state](https://developers.google.com/chat/api/reference/rest/v1/users.spaces.threads/getThreadReadState) is updated. | - `google.workspace.chat.spaceReadState.v1.updated` - `google.workspace.chat.threadReadState.v1.updated` - `google.workspace.chat.spaceReadState.v1.batchUpdated` - `google.workspace.chat.threadReadState.v1.batchUpdated` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.users.readstate` - `chat.users.readstate.readonly` With [App authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [administrator approval](https://support.google.com/a?p=chat-app-auth): - `chat.app.all.users.readstate.readonly` |
| An [availability](https://developers.google.com/chat/api/reference/rest/v1/availability) is updated. | - `google.workspace.chat.availability.v1.updated` | With [User authentication](https://developers.google.com/chat/api/guides/auth/users): - `chat.users.availability` - `chat.users.availability.readonly` |
| **Drive** |   ||||
| A [file](https://developers.google.com/workspace/drive/api/reference/rest/v3/files) is created, changed, moved, deleted, renamed, trashed, or removed from the trash. | - `google.workspace.drive.file.v3.added` - `google.workspace.drive.file.v3.moved` - `google.workspace.drive.file.v3.contentChanged` - `google.workspace.drive.file.v3.deleted` - `google.workspace.drive.file.v3.renamed` - `google.workspace.drive.file.v3.trashed` - `google.workspace.drive.file.v3.untrashed` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` |
| An [Access Proposal](https://developers.google.com/workspace/drive/api/reference/rest/v3/accessproposals) is created or resolved on a file. | - `google.workspace.drive.accessProposal.v3.created` - `google.workspace.drive.accessProposal.v3.resolved` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` - `drive.metadata` - `drive.metadata.readonly` |
| An [Approval](https://developers.google.com/workspace/drive/api/reference/rest/v3/approvals) is cancelled, completed, created, reset, reviewers changed, or reviewers responded on a file. | - `google.workspace.drive.approval.v3.cancelled` - `google.workspace.drive.approval.v3.completed` - `google.workspace.drive.approval.v3.created` - `google.workspace.drive.approval.v3.reset` - `google.workspace.drive.approval.v3.reviewersChanged` - `google.workspace.drive.approval.v3.reviewerResponded` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` - `drive.metadata` - `drive.metadata.readonly` |
| A [Comment](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments) is created, deleted, edited, reopened, or resolved on a file. | - `google.workspace.drive.comment.v3.created` - `google.workspace.drive.comment.v3.deleted` - `google.workspace.drive.comment.v3.edited` - `google.workspace.drive.comment.v3.reopened` - `google.workspace.drive.comment.v3.resolved` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` - `drive.metadata` - `drive.metadata.readonly` |
| A [Reply](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies) is created, deleted, or edited on a file. | - `google.workspace.drive.reply.v3.created` - `google.workspace.drive.reply.v3.deleted` - `google.workspace.drive.reply.v3.edited` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` - `drive.metadata` - `drive.metadata.readonly` |
| A [Permission](https://developers.google.com/workspace/drive/api/reference/rest/v3/permissions) is created, deleted, or edited on a file. | - `google.workspace.drive.permission.v3.created` - `google.workspace.drive.permission.v3.deleted` - `google.workspace.drive.permission.v3.edited` | - `drive` - `drive.file` - `drive.readonly` - `drive.metadata` - `drive.metadata` - `drive.metadata.readonly` |
| **Meet** |   ||||
| A [conference](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords) starts or ends. | - `google.workspace.meet.conference.v2.started` - `google.workspace.meet.conference.v2.ended` | - `meetings.space.created` - `meetings.space.readonly` |
| A [participant](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords.participants.participantSessions) joins or leaves a conference. | - `google.workspace.meet.participant.v2.joined` - `google.workspace.meet.participant.v2.left` | - `meetings.space.created` - `meetings.space.readonly` |
| A [recording](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords.recordings) was generated. | - `google.workspace.meet.recording.v2.fileGenerated` | - `meetings.space.created` - `meetings.space.readonly` |
| A [transcript](https://developers.google.com/meet/api/reference/rest/v2/conferenceRecords.transcripts) was generated. | - `google.workspace.meet.transcript.v2.fileGenerated` | - `meetings.space.created` - `meetings.space.readonly` |

## Related topics

- [Authentication overview for Chat](https://developers.google.com/workspace/chat/authenticate-authorize)
- [Authentication overview for Drive](https://developers.google.com/workspace/drive/api/guides/api-specific-auth)
- [Authentication overview for Meet](https://developers.google.com/workspace/meet/api/guides/authenticate-authorize)