PlatformDataSource

For a `https://developers.google.com/apps-script/reference/card-service/selection-input` widget that uses a multiselect menu, a data source from Google
Workspace. Used to populate items in a multiselect menu.

```javascript
const platformDataSource =
    CardService.newPlatformDataSource().setCommonDataSource(
        CardService.CommonDataSource.USER,
    );

const multiSelect = CardService.newSelectionInput()
                        .setType(CardService.SelectionInputType.MULTI_SELECT)
                        .setFieldName('contacts')
                        .setTitle('Selected contacts')
                        .setMultiSelectMaxSelectedItems(5)
                        .setMultiSelectMinQueryLength(1)
                        .setPlatformDataSource(platformDataSource);
```

Only available for Google Chat apps. Not available for Google Workspace add-ons.

### Methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/card-service/platform-data-source#setCommonDataSource(CommonDataSource)` | `https://developers.google.com/apps-script/reference/card-service/platform-data-source#` | Sets the data source from Google Workspace. |
| `https://developers.google.com/apps-script/reference/card-service/platform-data-source#setDriveDataSourceSpec(DriveDataSourceSpec)` | `https://developers.google.com/apps-script/reference/card-service/platform-data-source#` | Sets the drive data source spec from Google Workspace. |
| `https://developers.google.com/apps-script/reference/card-service/platform-data-source#setHostAppDataSource(HostAppDataSource)` | `https://developers.google.com/apps-script/reference/card-service/platform-data-source#` | Used to populate spaces in multiselect menu. |

## Detailed documentation

### `setCommonDataSource(commonDataSource)`

Sets the data source from Google Workspace.

```javascript
const platformDataSource =
    CardService.newPlatformDataSource().setCommonDataSource(
        CardService.CommonDataSource.USER,
    );

const multiSelect = CardService.newSelectionInput()
                        .setType(CardService.SelectionInputType.MULTI_SELECT)
                        .setFieldName('contacts')
                        .setTitle('Selected contacts')
                        .setMultiSelectMaxSelectedItems(5)
                        .setMultiSelectMinQueryLength(1)
                        .setPlatformDataSource(platformDataSource);
```
Only available for Google Chat apps. Not available for Google Workspace add-ons.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `commonDataSource` | `https://developers.google.com/apps-script/reference/card-service/common-data-source` | The data source to be set. |

#### Return


`https://developers.google.com/apps-script/reference/card-service/platform-data-source#` --- This object, for chaining.

*** ** * ** ***

### `setDriveDataSourceSpec(driveDataSourceSpec)`

Sets the drive data source spec from Google Workspace.

```javascript
const driveDataSourceSpec =
    CardService.newDriveDataSourceSpec()
      .addItemType(CardService.DriveItemType.DOCUMENTS)
      .addItemType(CardService.DriveItemType.FORMS);

const platformDataSource =
    CardService.newPlatformDataSource().setCommonDataSource(
        CardService.CommonDataSource.DRIVE
    ).setDriveDataSourceSpec(driveDataSourceSpec);

const multiSelect = CardService.newSelectionInput()
                        .setType(CardService.SelectionInputType.MULTI_SELECT)
                        .setFieldName('files')
                        .setTitle('Drive Files')
                        .setMultiSelectMaxSelectedItems(5)
                        .setMultiSelectMinQueryLength(1)
                        .setPlatformDataSource(platformDataSource);
```
Available for Google Chat apps. For Google Workspace add-ons, it needs to add **Per-file
access scope** (`https://www.googleapis.com/auth/drive.file`) to manifest.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `driveDataSourceSpec` | `https://developers.google.com/apps-script/reference/card-service/drive-data-source-spec` | The drive data source spec to be set. |

#### Return


`https://developers.google.com/apps-script/reference/card-service/platform-data-source#` --- This object, for chaining.

*** ** * ** ***

### `setHostAppDataSource(hostAppDataSource)`

Used to populate spaces in multiselect menu.

```javascript
const chatSpaceDataSource =
    CardService.newChatSpaceDataSource().setDefaultToCurrentSpace(true);

const chatClientDataSource =
    CardService.newChatClientDataSource().setSpaceDataSource(
        chatSpaceDataSource);

const hostAppDataSource =
    CardService.newHostAppDataSource().setChatDataSource(chatClientDataSource);

const platformDataSource =
    CardService.newPlatformDataSource().setHostAppDataSource(hostAppDataSource);

const multiSelect = CardService.newSelectionInput()
                        .setType(CardService.SelectionInputType.MULTI_SELECT)
                        .setFieldName('contacts')
                        .setTitle('Selected contacts')
                        .setMultiSelectMaxSelectedItems(5)
                        .setMultiSelectMinQueryLength(1)
                        .setPlatformDataSource(platformDataSource);
```
Only available for Google Chat apps. Not available for Google Workspace add-ons.

#### Parameters

| Name | Type | Description |
|---|---|---|
| `hostAppDataSource` | `https://developers.google.com/apps-script/reference/card-service/host-app-data-source` | The data source to be set. |

#### Return


`https://developers.google.com/apps-script/reference/card-service/platform-data-source#` --- This object, for chaining.