כדי לאפשר למשתמשים לבחור קבצים או תיקיות מ-Google Drive, אפשר להגדיר ווידג'ט של
SelectionInput
כדי להשתמש בכלי לבחירת קבצים של Google. במדריך הזה מוסבר איך להגדיר את בורר הקבצים של Google בכרטיס ההגדרות של התוסף.
הגדרת הכלי לבחירת קבצים ב-Google
כדי להפעיל את הווידג'ט של קלט הבחירה כדי לבחור קבצים או תיקיות מ-Google Drive, צריך להגדיר את PlatformDataSource שלו עם CommonDataSource ו-DriveDataSourceSpec.
- מגדירים את
CommonDataSourceלערךDRIVE. הפעולה הזו מגדירה את Google Drive כמקור לקלט של הבחירה. - (אופציונלי) כדי לציין אילו סוגי קבצים המשתמשים יכולים לבחור, מוסיפים את התג
DriveDataSourceSpec. אפשר לציין אחד או יותר מסוגי הפריטים הבאים:DOCUMENTSSPREADSHEETSPRESENTATIONSPDFSFORMSFOLDERS
דוגמה: בחירת גיליונות אלקטרוניים וקובצי PDF
בדוגמה הבאה מוצג כרטיס הגדרות שמאפשר למשתמשים לבחור כמה גיליונות אלקטרוניים או קובצי PDF מ-Google Drive. כשהשלב מופעל, הוא מחזיר את מזהי הקבצים של הפריטים שנבחרו כמשתני פלט.
JSON
{
"timeZone": "America/Los_Angeles",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"addOns": {
"common": {
"name": "Drive Picker Demo",
"logoUrl": "https://www.gstatic.com/images/icons/material/system/1x/pets_black_48dp.png",
"useLocaleFromApp": true
},
"flows": {
"workflowElements": [
{
"id": "file_selection",
"state": "ACTIVE",
"name": "File selection",
"workflowAction": {
"inputs": [
{
"id": "drive_picker_1",
"description": "Choose a file from Google Drive",
"dataType": {
"basicType": "STRING"
}
}
],
"outputs": [
{
"id": "fileId",
"description": "The ID of the selected file",
"cardinality": "SINGLE",
"dataType": {
"basicType": "STRING"
}
}
],
"onConfigFunction": "onConfig",
"onExecuteFunction": "onExecute"
}
}
]
}
}
}
Apps Script
/**
* Returns a configuration card for the step.
* This card includes a selection input widget configured as a Google Picker
* that lets users select spreadsheets and PDFs.
*/
function onConfig() {
// Lets users select either spreadsheets or PDFs
const driveSpec = CardService.newDriveDataSourceSpec()
.addItemType(
CardService.DriveItemType.SPREADSHEETS
)
.addItemType(
CardService.DriveItemType.PDFS
);
const platformSource = CardService.newPlatformDataSource()
.setCommonDataSource(
CardService.CommonDataSource.DRIVE
)
.setDriveDataSourceSpec(driveSpec);
const selectionInput =
CardService.newSelectionInput()
.setFieldName("drive_picker_1")
.setPlatformDataSource(platformSource)
.setTitle("Drive Picker")
.setType(
CardService.SelectionInputType.MULTI_SELECT
);
var sectionBuilder =
CardService.newCardSection()
.addWidget(selectionInput)
return CardService.newCardBuilder()
.addSection(sectionBuilder)
.build();
}
/**
* Executes when the step runs.
* This function retrieves the file ID of the item selected in the Google Picker
* and returns it as an output variable.
* @param {Object} event The event object passed by the Flows runtime.
* @return {Object} The output variables object.
*/
function onExecute(event) {
// Extract the selected file's ID during execution
console.log("eventObject: " + JSON.stringify(event));
var fileId = event.workflow.actionInvocation.inputs["drive_picker_1"].stringValues[0];
const variableData = AddOnsResponseService.newVariableData()
.addStringValue(fileId);
let textFormatElement = AddOnsResponseService.newTextFormatElement()
.setText("A file has been selected!");
let workflowTextFormat = AddOnsResponseService.newWorkflowTextFormat()
.addTextFormatElement(textFormatElement);
let workflowAction = AddOnsResponseService.newReturnOutputVariablesAction()
.addVariableData("fileId", variableData)
.setLog(workflowTextFormat);
let hostAppAction = AddOnsResponseService.newHostAppAction()
.setWorkflowAction(workflowAction);
return AddOnsResponseService.newRenderActionBuilder()
.setHostAppAction(hostAppAction)
.build();
}