✅
Demo to preview the plugin:
✅
Introduction
Push files to Google Drive using your Users Drive Account both as Base64 or File Type—the easiest way to allow your app to move data independently.
Looking to enable your app to transfer data to Google Drive? This plugin lets users upload and manage their files on Google Drive using their accounts, supporting both Base64 and file-type uploads. Since this is the OAuth version, users will log into their Drive accounts to access their files. The plugin capabilities allow for seamless Google Drive integration, enabling users to manage their files efficiently within your app.
☝
Note: This is the OAuth version, your users will sign into their own Drive account's using the plugin then have access to their files.
Prerequisites
You must have a developer account with Google to interact with the plugin API. Create your development account at: https://console.cloud.google.com/home/dashboard and also enable Google Drive API in console.
Setting up the plugin
- Open the Google API Dashboard page.
- Click on the button "ENABLE API AND SERVICES" and add "Google Drive API"
- After you add Google Drive API, return back to the “Credentials” page and click on the "Create credentials" button. In the drop down select the "Oauth Client id". When prompted select "Web application
- To create the key, please configure as seen below. Copy the Generic redirect URI and paste it in the Google Settings. Pay attention to the latest fields which should be used, also set the authorized origins url from your app. After everything was configured, click Create.
- After everything was created new pop-up with will appear, copy the keys from the opened popup and put them in the plugin settings in your app.
- The plugin is set, now can be used for all the API Calls and Actions that the plugin provides.
Plugin Data Calls and Actions
Plugin Data Calls
Get User Info
Return information about user
Return Values:
Return type: JSON
json{ "id": "text", "email": "text", "verified_email": "yes/no", "name": "text", "given_name": "text", "family_name": "text", "picture": "image", "locale": "text", "hd": "text" }
Search/Get Files
Lists the user's files.
Name | Description | Type |
Name | Name of the file. | Text |
FullText | Full text of the file including name, description, content, and indexable text. | Text |
MimeType | MIME type of the file. | Text |
ModifiedTime | Date of the last modification of the file. | Text |
ViewedByMeTime | Date that the user last viewed a file. | Text |
Trashed | Whether the file is in the trash or not. | Text |
Starred | Whether the file is starred or not. | Text |
Parents | Whether the parents collection contains the specified ID. | Text |
Owners | Users who own the file. | Text |
Writers | Users who have permission to modify the file | Text |
Readers | Users who have permission to read the file. | Text |
SharedWithMe | Files that have been shared with the authorized user. | Text |
Properties | Public custom file properties. | Text |
AppProperties | Private custom file properties. | Text |
Visibility | Files that have not been shared with anyone or domains (only private, or shared with specific users or groups). | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "nextPageToken": "text", "incompleteSearch": "yes/no", "files": { "kind": "text", "id": "text", "name": "text", "mimeType": "text", "resourceKey": "text" } }
Get File Info
Gets a file's metadata or content by ID.
Name | Description | Type |
/fileId | The ID of the file | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "etag": "text", "selfLink": "text", "webContentLink": "text", "alternateLink": "text", "embedLink": "text", "iconLink": "text", "thumbnailLink": "text", "title": "text", "mimeType": "text", "labels starred": "yes/no", "labels hidden": "yes/no", "labels trashed": "yes/no", "labels restricted": "yes/no", "labels viewed": "yes/no", "copyRequiresWriterPermission": "yes/no", "createdDate": "text", "modifiedDate": "text", "lastViewedByMeDate": "text", "markedViewedByMeDate": "text", "sharedWithMeDate": "text", "version": "text", "parents": { "kind": "text", "id": "text", "selfLink": "text", "parentLink": "text", "isRoot": "yes/no" }, "downloadUrl": "text", "userPermission kind": "text", "userPermission etag": "text", "userPermission id": "text", "userPermission selfLink": "text", "userPermission role": "text", "userPermission type": "text", "userPermission pendingOwner": "yes/no", "originalFilename": "text", "fileExtension": "text", "md5Checksum": "text", "fileSize": "text", "quotaBytesUsed": "text", "ownerNames": "undefined", "owners": { "kind": "text", "displayName": "text", "picture url": "text", "isAuthenticatedUser": "yes/no", "permissionId": "text", "emailAddress": "text" }, "lastModifyingUserName": "text", "lastModifyingUser kind": "text", "lastModifyingUser displayName": "text", "lastModifyingUser picture url": "text", "lastModifyingUser isAuthenticatedUser": "yes/no", "lastModifyingUser permissionId": "text", "lastModifyingUser emailAddress": "text", "capabilities canCopy": "yes/no", "capabilities canEdit": "yes/no", "editable": "yes/no", "copyable": "yes/no", "writersCanShare": "yes/no", "shared": "yes/no", "explicitlyTrashed": "yes/no", "appDataContents": "yes/no", "headRevisionId": "text", "spaces": "undefined" }
Get Image from Drive
Get image by ID
Name | Description | Type |
/fileId | The ID of the file. | Text |
Return Values:
Return type: image
Children: list
Lists a folder's children.
Name | Description | Type |
OrderBy | A comma-separated list of sort keys. Valid keys are ‘createdDate’, ‘folder’, ‘lastViewedByMeDate’, ‘modifiedByMeDate’, ‘modifiedDate’, ‘quotaBytesUsed’, ‘recency’, ‘sharedWithMeDate’, ‘starred’, and ‘title’. Each key sorts ascending by default, but may be reversed with the ‘desc’ modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored. | Text |
MaxResults | Maximum number of children to return. Acceptable values are 0 to 1000, inclusive. (Default: 100) | Text |
PageToken | Page token for children. | Text |
Q | Query string for searching children. See Searching for files for more information about supported fields and operations “https://developers.google.com/drive/api/v2/search-files”, | Text |
FolderId | The ID of the folder. To list all files in the root folder, use the alias root as the value for folderId. | Text |
Hash | Set a random text if bubble caches the requests and you need to tell it to update. Ex: current time | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "etag": "text", "selfLink": "text", "items": { "kind": "text", "id": "text", "selfLink": "text", "childLink": "text" } }
Children: get
Gets a specific child reference.
Name | Description | Type |
FolderId | The ID of the folder. | Text |
ChildId | The ID of the child. | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "selfLink": "text", "childLink": "text" }
Get list of files inside folder(API v3)
Return a list of files that located inside a specific folder
Name | Description | Type |
Hash | Set a random text if bubble caches the requests and you need to tell it to update. Ex: current time | Text |
Folder Id | The ID of the folder | Text |
Return Values:
Return type: JSON
json{ "body kind": "text", "body incompleteSearch": "yes/no", "body files": { "kind": "text", "mimeType": "text", "id": "text", "name": "text" }, "error status_code": "number", "error status_message": "text", "error body": "text", "returned_an_error": "yes/no" }
Plugin Action Calls
Delete File
Permanently deletes a file owned by the user without moving it to the trash.
Name | Description | Type |
/fileId | The ID of the file | Text |
Return Values:
Return type: empty
Create a Folder
Create a folder with description
Name | Description | Type |
File description | Description of the folder | Text |
Folder name | Name of the folder | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "etag": "text", "selfLink": "text", "alternateLink": "text", "embedLink": "text", "iconLink": "text", "title": "text", "mimeType": "text", "description": "text", "labels starred": "yes/no", "labels hidden": "yes/no", "labels trashed": "yes/no", "labels restricted": "yes/no", "labels viewed": "yes/no", "copyRequiresWriterPermission": "yes/no", "createdDate": "text", "modifiedDate": "text", "modifiedByMeDate": "text", "lastViewedByMeDate": "text", "markedViewedByMeDate": "text", "version": "text", "parents": { "kind": "text", "id": "text", "selfLink": "text", "parentLink": "text", "isRoot": "yes/no" }, "userPermission kind": "text", "userPermission etag": "text", "userPermission id": "text", "userPermission selfLink": "text", "userPermission role": "text", "userPermission type": "text", "quotaBytesUsed": "text", "ownerNames": "text(list)", "owners": { "kind": "text", "displayName": "text", "picture url": "text", "isAuthenticatedUser": "yes/no", "permissionId": "text", "emailAddress": "text" }, "lastModifyingUserName": "text", "lastModifyingUser kind": "text", "lastModifyingUser displayName": "text", "lastModifyingUser picture url": "text", "lastModifyingUser isAuthenticatedUser": "yes/no", "lastModifyingUser permissionId": "text", "lastModifyingUser emailAddress": "text", "capabilities canCopy": "yes/no", "capabilities canEdit": "yes/no", "editable": "yes/no", "copyable": "yes/no", "writersCanShare": "yes/no", "shared": "yes/no", "explicitlyTrashed": "yes/no", "appDataContents": "yes/no", "spaces": "text(list)" }
Upload a File (base64)
Upload a file as base64
Name | Description | Type |
File name | Name with extension | Text |
Mime type | The MIME type of the file. | Text |
File description | A short description of the file. | Text |
File as base64 | File as base64 | Text |
File mime type | Fill in with the same value as in field Mime type | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "etag": "text", "selfLink": "text", "webContentLink": "text", "alternateLink": "text", "embedLink": "text", "iconLink": "text", "thumbnailLink": "text", "title": "text", "mimeType": "text", "description": "text", "labels starred": "yes/no", "labels hidden": "yes/no", "labels trashed": "yes/no", "labels restricted": "yes/no", "labels viewed": "yes/no", "copyRequiresWriterPermission": "yes/no", "createdDate": "text", "modifiedDate": "text", "modifiedByMeDate": "text", "lastViewedByMeDate": "text", "markedViewedByMeDate": "text", "version": "text", "parents": { "kind": "text", "id": "text", "selfLink": "text", "parentLink": "text", "isRoot": "yes/no" }, "downloadUrl": "text", "userPermission kind": "text", "userPermission etag": "text", "userPermission id": "text", "userPermission selfLink": "text", "userPermission role": "text", "userPermission type": "text", "originalFilename": "text", "fileExtension": "text", "md5Checksum": "text", "fileSize": "text", "quotaBytesUsed": "text", "ownerNames": "text(list)", "owners": { "kind": "text", "displayName": "text", "picture url": "text", "isAuthenticatedUser": "yes/no", "permissionId": "text", "emailAddress": "text" }, "lastModifyingUserName": "text", "lastModifyingUser kind": "text", "lastModifyingUser displayName": "text", "lastModifyingUser picture url": "text", "lastModifyingUser isAuthenticatedUser": "yes/no", "lastModifyingUser permissionId": "text", "lastModifyingUser emailAddress": "text", "capabilities canCopy": "yes/no", "capabilities canEdit": "yes/no", "editable": "yes/no", "copyable": "yes/no", "writersCanShare": "yes/no", "shared": "yes/no", "explicitlyTrashed": "yes/no", "appDataContents": "yes/no", "headRevisionId": "text", "imageMediaMetadata width": "number", "imageMediaMetadata height": "number", "imageMediaMetadata rotation": "number", "spaces": "text(list)" }
Move file to folder
Change a parent of the file. Use this action to move exist or new files to a folder
Name | Description | Type |
/fileId | The ID of the file. | Text |
Folder ID | The ID of the folder to move | Text |
Return Values:
Return type: empty
Remove File From Folder
Remove a specified file from a particular folder
Name | Description | Type |
/fileId | The ID of the file. | Text |
/folderId | The ID of the parent folder | Text |
Parent id | The ID of the parent folder | Text |
Return Values:
Return type: empty
Upload a File
Upload a file to the google drive
Name | Description | Type |
File | File | Text |
File name | Name with extension | Text |
MIme type | Mime type of the file | Text |
File description | A short description of the file | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "name": "text", "mimeType": "text" }
Remove Everyone With Link Permission
Deletes a Everyone With Link permission from a file
Name | Description | Type |
/fileId | The ID of the file | Text |
Return Values:
Return type: empty
Give a User Permission (Write)
Give to a specific user a write permission to a file
Name | Description | Type |
EmailAddress | The email address of the user or group to which this permission refers. | Text |
SendNotificationEmail | Whether to send a notification email when sharing to users or groups. | Text |
EmailMessage | A plain text custom message to include in the notification email. | Text |
/fileId | The ID of the file to share | Text |
Return Values:
Return type: JSON
json{ "id": "text" }
Give a User Permission (Read)
Give to a specific user a read permission to a file
Name | Description | Type |
EmailAddress | The email address of the user or group to which this permission refers. | Text |
SendNotificationEmail | Whether to send a notification email when sharing to users or groups. | Text |
EmailMessage | A plain text custom message to include in the notification email. | Text |
/fileId | The ID of the file to share | Text |
Return Values:
Return type: JSON
json{ "id": "text" }
Give a User Permission (Commenter)
Give to a specific user a Commenter permission to a file
Name | Description | Type |
EmailAddress | The email address of the user or group to which this permission refers. | Text |
SendNotificationEmail | Whether to send a notification email when sharing to users or groups. | Text |
EmailMessage | A plain text custom message to include in the notification email. | Text |
/fileId | The ID of the file to share | Text |
Return Values:
Return type: JSON
json{ "id": "text" }
Give Everyone Permission (Read)
Give to everyone a Read permission to a file
Name | Description | Type |
/fileId | The ID of the file to share | Text |
Return Values:
Return type: empty
Give Everyone Permission (Write)
Give to everyone a Write permission to a file
Name | Description | Type |
/fileId | The ID of the file to share | Text |
Return Values:
Return type: empty
Remove Permission Using ID
Remove permission by ID of the permission
Name | Description | Type |
/fileId | The ID of the file to share | Text |
/permissionId | The ID of the permission | Text |
Return Values:
Return type: empty
Update a User’s Permission (Read)
Update the permission with Read role
Name | Description | Type |
/fileId | The ID of the file to share | Text |
/permissionId | The ID of the permission | Text |
Return Values:
Return type: JSON
json{ "id": "text" }
Update a User’s Permission (Write)
Update the permission with Write role
Name | Description | Type |
/fileId | The ID of the file to share | Text |
/permissionId | The ID of the permission | Text |
Return Values:
Return type: JSON
json{ "id": "text" }
Rename file
Change a name of the file
Name | Description | Type |
New name | The new name of the file | Text |
Field | The ID of the file to share | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "etag": "text", "selfLink": "text", "webContentLink": "text", "alternateLink": "text", "embedLink": "text", "iconLink": "text", "title": "text", "mimeType": "text", "labels starred": "yes/no", "labels hidden": "yes/no", "labels trashed": "yes/no", "labels restricted": "yes/no", "labels viewed": "yes/no", "copyRequiresWriterPermission": "yes/no", "createdDate": "text", "modifiedDate": "text", "modifiedByMeDate": "text", "lastViewedByMeDate": "text", "markedViewedByMeDate": "text", "version": "text", "parents": { "kind": "text", "id": "text", "selfLink": "text", "parentLink": "text", "isRoot": "yes/no" }, "downloadUrl": "text", "userPermission kind": "text", "userPermission etag": "text", "userPermission id": "text", "userPermission selfLink": "text", "userPermission role": "text", "userPermission type": "text", "originalFilename": "text", "fileExtension": "text", "md5Checksum": "text", "fileSize": "text", "quotaBytesUsed": "text", "ownerNames": "text(list)", "owners": { "kind": "text", "displayName": "text", "isAuthenticatedUser": "yes/no", "permissionId": "text", "emailAddress": "text" }, "lastModifyingUserName": "text", "lastModifyingUser kind": "text", "lastModifyingUser displayName": "text", "lastModifyingUser isAuthenticatedUser": "yes/no", "lastModifyingUser permissionId": "text", "lastModifyingUser emailAddress": "text", "capabilities canCopy": "yes/no", "capabilities canEdit": "yes/no", "editable": "yes/no", "copyable": "yes/no", "writersCanShare": "yes/no", "shared": "yes/no", "explicitlyTrashed": "yes/no", "appDataContents": "yes/no", "headRevisionId": "text", "spaces": "text(list)" }
Children: insert
Inserts a file into a folder
Name | Description | Type |
FolderId | The ID of the folder. | Text |
EnforceSingleParent | Set to true to opt in to API behavior that aims for all items to have exactly one parent. This parameter only takes effect if the item is not in a shared drive. If the child’s owner makes the request, the child is removed from all current folders and placed in the requested folder. Any other requests that increase the number of the child’s parents fail, except when the canAddMyDriveParent file capability is true and a single parent is being added. | Text |
FileId | File id which you want moving | Text |
Return Values:
Return type: JSON
json{ "kind": "text", "id": "text", "selfLink": "text", "childLink": "text" }
Children: delete
Removes a child from a folder
Name | Description | Type |
FolderId | The ID of the folder. | Text |
ChildId | The ID of the child. | Text |
Return Values:
Return type: JSON
json{ "body": "text", "headers cache-control": "text", "headers pragma": "text", "headers expires": "text", "headers date": "text", "headers etag": "text", "headers vary": "text", "headers server": "text", "headers alt-svc": "text" }
Get file from Drive
Return the file from the google drive
Name | Description | Type |
/fileId | The ID of the file. | Text |
Return Values:
Return type: file
Export file
Exports a Google Workspace document to the requested MIME type and returns exported byte content. Note that the exported content is limited to 10MB. See also Google Workspace documents and corresponding export MIME types.
Name | Description | Type |
FileId | The ID of the file. | Text |
MimeType | Examples: application/pdf, text/csv, application/zip | Text |
Return Values:
Return type: file
json{ "kind": "text", "id": "text", "name": "text", "mimeType": "text" }
Changelogs
Update 23.07.24 - Version 1.5.0
- Minor update.
Update 17.07.24 - Version 1.4.0
- Minor update (Marketing update).
Update 17.06.24 - Version 1.3.0
- Minor update.
Update 13.06.24 - Version 1.2.0
- Updated demo/service links.
Update 28.05.24 - Version 1.1.0
- minor update.
Update 24.05.24 - Version 1.0.0
- Plugin release.