Python API

Google

class RPA.Cloud.Google.Google(service_account: Optional[str] = None, vault_name: Optional[str] = None, vault_secret_key: Optional[str] = None, cloud_auth_type: str = 'serviceaccount')

Google is a library for operating with Google API endpoints.

Installation

Usage requires the following steps:

  • Create a GCP project

  • Enable approriate APIs

  • Create credentials (OAuth or service account)

  • Install rpaframework-google package

Check the latest package version from PyPI.

Google authentication

Authentication for Google is set with service account JSON file which can be given to the library in three different ways or with OAuth2 token, which is used for OAuth authentication.

See library authentication examples for more information.

Basic usage examples

Python

from RPA.Cloud.Google import Google

library = Google()
service_account = '/path/to/service_account.json'

library.init_vision(service_account)
library.init_text_to_speech(service_account)

response = library.detect_text('imagefile.png', 'result.json')
library.synthesize_speech('I want this said aloud', target_file='said.mp3')

Robot Framework

*** Settings ***
Library   RPA.Cloud.Google

*** Variables ***
${SERVICE_ACCOUNT}    ${/}path${/}to${/}service_account.json
${BUCKET_NAME}            testbucket12213123123

*** Tasks ***
Upload a file into a new storage bucket
    [Setup]   Init Storage    ${SERVICE_ACCOUNT}
    Create Storage Bucket    ${BUCKET_NAME}
    Upload Storage File      ${BUCKET_NAME}
    ...   ${/}path${/}to${/}file.pdf
    ...   myfile.pdf
    @{files}         List Storage Files   ${BUCKET_NAME}
    FOR   ${file}  IN   @{files}
        Log  ${file}
    END
ROBOT_LIBRARY_DOC_FORMAT = 'REST'
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
add_attachment_to_message(mimeMessage, attachment)
add_drive_share(file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, email: Optional[str] = None, domain: Optional[str] = None, role: DriveRole = DriveRole.READER, share_type: DriveType = DriveType.USER, notification: bool = False, notification_message: Optional[str] = None) Dict

Keyword for sharing drive file or folder.

Parameters file_id, file_dict, query and source can be used to select files to which sharing is added to.

If share is added to a folder, all files within that folder get same sharing permissions.

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target file, needs to match 1 file

  • source – name of the folder to search files in, is by default drive’s root folder

  • email – user or group email address if share type is DriveType.USER or DriveType.GROUP

  • domain – domain name if share type is DriveType.DOMAIN

  • role – see DriveRole enum for possible values, defaults to DriveRole.READER

  • share_type – see DriveType enum for possible values, defaults to DriveType.USER

  • notification – whether to send notificatin email, defaults to False

  • notification_message – optional message to include with the notification

Returns

share response dictionary containing ‘file_id’ and ‘permission_id’

Example:

# Add file share for a email address with email notification
Add Drive Share
...    query=name = 'okta.png'
...    email=robocorp.tester@gmail.com
...    notification=True
...    notification_message=Hello. I have shared 'okta.png' with you for review.
# Add file share for a domain
Add Drive Share
...    query=name = 'okta.png'
...    domain=robocorp.com
# Add folder share for a email address
${folder}=    Create Drive Directory   attachments-for-the-task
${share}=  Add Drive Share
...   file_id=${folder}[id]
...   email=robocorp.tester@gmail.com
...   role=writer
Log To Console  Share details: ${share}[file_id], ${share}[permission_id]
analyze_sentiment(text: Optional[str] = None, text_file: Optional[str] = None, file_type: TextType = TextType.TEXT, json_file: Optional[str] = None, lang: Optional[str] = None) Dict

Analyze sentiment in a text file

Parameters
  • text – source text

  • text_file – source text file

  • file_type – type of text, PLAIN_TEXT (default) or HTML

  • json_file – json target to save result, defaults to None

  • lang – language code of the source, defaults to None

Returns

analysis response

For list of supported languages: https://cloud.google.com/natural-language/docs/languages

Examples

Robot Framework

${result}=   Analyze Sentiment  ${text}
${result}=   Analyze Sentiment  text_file=${CURDIR}${/}test.txt
annotate_image(image_file: str, image_uri: str, json_file: Optional[str] = None) Dict

Annotate image

Parameters
  • image_file – source image file path

  • image_uri – Google Cloud Storage URI

  • json_file – json target to save result

Returns

detection response

Examples

Robot Framework

${result}=   Annotate Image   image_file=${CURDIR}${/}test.png
...  json_file=${CURDIR}${/}result.json
annotate_video(video_file: Optional[str] = None, video_uri: Optional[str] = None, features: Optional[str] = None, output_uri: Optional[str] = None, json_file: Optional[str] = None, timeout: int = 300) Dict

Annotate video

Possible values for features:

  • FEATURE_UNSPECIFIED, Unspecified.

  • LABEL_DETECTION, Label detection. Detect objects, such as dog or flower.

  • SHOT_CHANGE_DETECTION, Shot change detection.

  • EXPLICIT_CONTENT_DETECTION, Explicit content detection.

  • SPEECH_TRANSCRIPTION, Speech transcription.

  • TEXT_DETECTION, OCR text detection and tracking.

  • OBJECT_TRACKING, Object detection and tracking.

  • LOGO_RECOGNITION, Logo detection, tracking, and recognition.

If video_uri is given then that is used even if video_file is given.

Parameters
  • video_file – local file path to input video

  • video_uri – Google Cloud Storage URI to input video

  • features – list of annotation features to detect, defaults to LABEL_DETECTION,SHOT_CHANGE_DETECTION

  • output_uri – Google Cloud Storage URI to store response json

  • json_file – json target to save result

  • timeout – timeout for operation in seconds

Returns

annotate result

Examples

Robot Framework

${result}=   Annotate Video   video_uri=gs://videointelligence/movie.mp4
...  features=TEXT_DETECTION,LABEL_DETECTION
...  output_uri=gs://videointelligence/movie_annotations.json
...  json_file=${CURDIR}${/}videoannotations.json
classify_text(text: Optional[str] = None, text_file: Optional[str] = None, file_type: TextType = TextType.TEXT, json_file: Optional[str] = None, lang: Optional[str] = None) Dict

Classify text

Parameters
  • text – source text

  • text_file – source text file

  • file_type – type of text, PLAIN_TEXT (default) or HTML

  • json_file – json target to save result, defaults to None

  • lang – language code of the source, defaults to None

Returns

classify response

For list of supported languages: https://cloud.google.com/natural-language/docs/languages

Examples

Robot Framework

${result}=   Classify Text  ${text}
${result}=   Classify Text  text_file=${CURDIR}${/}test.txt
clear_sheet_values(spreadsheet_id: str, sheet_range: str) Dict

Clear cell values for range of cells within a spreadsheet

Parameters
  • spreadsheet_id – target spreadsheet

  • sheet_range – target sheet range

Returns

operation result

Examples

Python

result = GOOGLE.clear_sheet_values(spreadsheet_id, "A1:C1")

Robot Framework

${result}=  Clear Sheet Values  ${SPREADSHEET_ID}  A1:C1
copy_sheet(spreadsheet_id: str, source_sheet_name: str, new_sheet_name: str, insertSheetIndex: Optional[int] = None)

Copy sheet into the spreadsheet as new sheet

Parameters
  • spreadsheet_id – id of the spreadsheet

  • source_sheet_name – name of the source sheet

  • new_sheet_name – name for the new sheet

  • insertSheetIndex – zero based index where the new sheet should be inserted, defaults to None

Returns

operation result as an dictionary

Examples

Python

result = GOOGLE.copy_sheet(
    spreadsheet_id,
    "Existing sheet",
    "Copy of existing sheet"
    )

Robot Framework

${result}=    Copy Sheet
...   ${SPREADSHEET_ID}
...   Existing sheet
...   Copy of existing sheet
copy_spreadsheet(spreadsheet_id: str, target_spreadsheet_id: str) Dict

Copy spreadsheet to target spreadsheet

NOTE: service account user must have access also to target spreadsheet

Parameters
  • spreadsheet_id – ID of the spreadsheet to copy

  • target_spreadsheet_id – ID of the target spreadsheet

Returns

operation result

Examples

Python

result = GOOGLE.copy_spreadsheet(
    spreadsheet_id,
    source_spreadsheet_id,
    target_spreadsheet_id)

Robot Framework

${result}=  Copy Spreadsheet   ${SPREADSHEET_ID}  ${ANOTHER_SPREADSHEET_ID}
create_drive_directory(folder: Optional[str] = None, parent_folder: Optional[str] = None) Dict

Create new directory to Google Drive

Parameters
  • folder – name for the new directory

  • parent_folder – top level directory for new directory

Returns

dictionary containing folder ID and folder URL

Example:

${folder}=  Create Drive Directory   example-folder
Log To Console    Google Drive folder ID: ${folder}[id]
Log To Console    Google Drive folder URL:  ${folder}[url]
create_message(to: str, subject: str, message_text: str, attachments: Optional[list] = None, html: bool = False)

Create a message for an email.

Parameters
  • to – message recipient

  • subject – message subject

  • message_text – message body text

  • attachment – list of files to add as message attachments

  • html – set to True if message body is HTML (default False, plain text)

Returns

An object containing a base64url encoded email object

create_sheet(spreadsheet_id: str, sheet_name: str)

Create sheet into the spreadsheet

Parameters
  • spreadsheet_id – id of the spreadsheet

  • sheet_name – name for the new sheet

Returns

operation result as an dictionary

Examples

Python

result = GOOGLE.create_sheet(spreadsheet_id, "New sheet")

Robot Framework

${result}=    Create Sheet    ${SPREADSHEET_ID}    New sheet
create_spreadsheet(title: str) str

Create empty sheet with a title

Parameters

title – name as string

Returns

created spreadsheet_id

Examples

Python

result = GOOGLE.create_spreadsheet("name of the spreadsheet")

Robot Framework

${result}=  Create Sheet   Example Sheet
create_storage_bucket(bucket_name: str) Dict

Create Google Cloud Storage bucket

Parameters

bucket_name – name as string

Returns

bucket

Examples

Robot Framework

${result}=   Create Storage Bucket   visionfolder
delete_drive_file(file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, multiple_ok: bool = False, suppress_errors: bool = False) int

Delete file specified by id, file dictionary or query string

Note. Be extra careful when calling this keyword!

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target file, needs to match 1 file unless parameter multiple_ok is set to True

  • multiple_ok – set to True if it is ok to perform delete on more than 1 file

  • suppress_errors – on True will log warning message instead of raising an exception, defaults to False

Returns

how many files where deleted

Example:

${folder_id}=  Get Drive Folder Id   datafolder
${deleted}=    Delete Drive File  query=name contains '.json' and '${folder_id}' in parents
...            multiple_ok=True
delete_sheet(spreadsheet_id: str, sheet_name: str)

Delete a sheet from the spreadsheet.

Parameters
  • spreadsheet_id – id of the spreadsheet

  • sheet_name – name of the sheet to delete

Returns

operation result as an dictionary

Examples

Python

result = GOOGLE.delete_sheet(spreadsheet_id, "Sheet1")

Robot Framework

${result}=    Delete Sheet    ${SPREADSHEET_ID}    Sheet1
delete_storage_bucket(bucket_name: str)

Delete Google Cloud Storage bucket

Bucket needs to be empty before it can be deleted.

Parameters

bucket_name – name as string

Examples

Robot Framework

${result}=   Delete Storage Bucket   visionfolder
delete_storage_files(bucket_name: str, files: Any) List

Delete files in the bucket

Files need to be object name in the bucket.

Parameters
  • bucket_name – name as string

  • files – single file, list of files or comma separated list of files

Returns

list of files which could not be deleted

Examples

Robot Framework

${result}=   Delete Storage Files   ${BUCKET_NAME}   file1,file2
detect_document(image_file: Optional[str] = None, image_uri: Optional[str] = None, json_file: Optional[str] = None) Dict

Detect document

Parameters
  • image_file – source image file path

  • image_uri – Google Cloud Storage URI

  • json_file – json target to save result

Returns

detection response

Examples

Robot Framework

${result}=   Detect Document   image_file=${CURDIR}${/}test.png
...  json_file=${CURDIR}${/}result.json
detect_labels(image_file: Optional[str] = None, image_uri: Optional[str] = None, json_file: Optional[str] = None) Dict

Detect labels in the image

Parameters
  • image_file – source image file path

  • image_uri – source image uri

  • json_file – json target to save result

Returns

detection response

Examples

Robot Framework

${result}=   Detect Labels   image_file=${CURDIR}${/}test.png
...  json_file=${CURDIR}${/}result.json
detect_tables(spreadsheet_id: str, sheet_name: Optional[str] = None)

Detect tables in the sheet.

Parameters
  • spreadsheet_id – id of the spreadsheet

  • sheet_name – name of the sheet, or leave None for all sheets

Returns

tables arranged by sheets

detect_text(image_file: Optional[str] = None, image_uri: Optional[str] = None, json_file: Optional[str] = None) Dict

Detect text in the image

Parameters
  • image_file – source image file path

  • image_uri – Google Cloud Storage URI

  • json_file – json target to save result

Returns

detection response

Examples

Robot Framework

${result}=   Detect Text   image_file=${CURDIR}${/}test.png
...  json_file=${CURDIR}${/}result.json
download_drive_files(file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, limit: Optional[int] = None, timeout: Optional[float] = None) List

Download files specified by file dictionary or query string

Parameters start, limit and timeout are used only when downloading files defined by query parameter.

Parameters
  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target files, defaults to None

  • source – source directory where query is executed

  • limit – maximum amount of files that are downloaded, defaults to None

  • timeout – maximum allowed time in seconds for download process

Returns

list of downloaded files

Example:

${files}=    Search Drive Files    query=name contains '.json'
FOR    ${f}    IN    @{files}
    IF  ${f}[size] < 2000
        Download Drive Files  file_dict=${f}
    END
END

${folder_id}=   Get Drive Folder Id   datafolder
Download Drive Files  query=name contains '.json' and '${folder_id}' in parents
download_storage_files(bucket_name: str, files: Any) List

Download files from a bucket

Example files: files = {“mytestimg”: “image1.png”, “mydoc”: “google.pdf”}

Parameters
  • bucket_name – name as string

  • files – list of object names or dictionary of object names and target files

Returns

list of files which could not be downloaded

Examples

Robot Framework

${result}=  Download Storage Files  ${BUCKET_NAME}   test1.txt,test2.txt
export_drive_file(file_id: Optional[str] = None, file_dict: Optional[dict] = None, target_file: Optional[str] = None, mimetype: str = 'application/pdf') str

Export Google Drive file using Drive export links

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • target_file – name for the exported file

  • mimetype – export mimetype, defaults to “application/pdf”

Returns

file path to the exported file

Example:

${files}=  Drive Search Files  query=name contains 'my example worksheet'
Export Drive File  file_dict=${files}[0]
face_detection(image_file: Optional[str] = None, image_uri: Optional[str] = None, json_file: Optional[str] = None) Dict

Detect faces

Parameters
  • image_file – source image file path

  • image_uri – Google Cloud Storage URI

  • json_file – json target to save result

Returns

detection response

Examples

Robot Framework

${result}=   Face Detection   image_uri=gs://vision/faces.png
...  json_file=${CURDIR}${/}result.json
generic_spreadsheet_batch_update(spreadsheet_id: str, body: Dict)

This keyword allows to do generic batch update to the spreadsheet.

For more information on the batch update: https://googleapis.github.io/google-api-python-client/docs/dyn/sheets_v4.spreadsheets.html#create

List of possible requests actions (body can contain multiple at the same time):

  • addBanding

  • addChart

  • addConditionalFormatRule

  • addDataSource

  • addDimensionGroup

  • addFilterView

  • addNamedRange

  • addProtectedRange

  • addSheet (keyword Create sheet)

  • addSlicer

  • appendCells

  • appendDimension

  • autoFill

  • autoResizeDimensions

  • clearBasicFilter

  • copyPaste

  • createDeveloperMetadata

  • cutPaste

  • deleteBanding

  • deleteConditionalFormatRule

  • deleteDataSource

  • deleteDeveloperMetadata

  • deleteDimension

  • deleteDimensionGroup

  • deleteDuplicates

  • deleteEmbeddedObject

  • deleteFilterView

  • deleteNamedRange

  • deleteProtectedRange

  • deleteRange

  • deleteSheet (keyword Delete sheet)

  • duplicateFilterView

  • duplicateSheet (keyword Copy sheet)

  • findReplace

  • insertDimension

  • insertRange

  • mergeCells

  • moveDimension

  • pasteData

  • randomizeRange

  • refreshDataSource

  • repeatCell

  • setBasicFilter

  • setDataValidation

  • sortRange

  • textToColumns

  • trimWhitespace

  • unmergeCells

  • updateBanding

  • updateBorders

  • updateCells

  • updateChartSpec

  • updateConditionalFormatRule

  • updateDataSource

  • updateDeveloperMetadata

  • updateDimensionGroup

  • updateDimensionProperties

  • updateEmbeddedObjectBorder

  • updateEmbeddedObjectPosition

  • updateFilterView

  • updateNamedRange

  • updateProtectedRange

  • updateSheetProperties (keyword Rename sheet)

  • updateSlicerSpec

  • updateSpreadsheetProperties

Parameters
  • spreadsheet_id – id of the spreadsheet

  • body – body of the batch update request

Returns

operation result as an dictionary

Examples

Python

body = {"requests": {"deleteSheet": {"sheetId": "333555666"}}}
result = GOOGLE.generic_spreadsheet_batch_update(spreadsheet_id, body)

Robot Framework

${body}=    Evaluate    {"requests": {"deleteSheet": {"sheetId": "333555666"}}}
${result}=    Generic Spreadsheet Batch Update    ${SPREADSHEET_ID}    ${body}
get_all_sheet_values(spreadsheet_id: str, sheet_name: Optional[str] = None, value_render_option: str = 'UNFORMATTED_VALUE', datetime_render_option: str = 'FORMATTED_STRING') List

Get values from the range in the spreadsheet

Parameters
  • spreadsheet_id – target spreadsheet

  • sheet_name – target sheet (default first sheet)

  • value_render_option – how values should be represented in the output defaults to “UNFORMATTED_VALUE”

  • datetime_render_option – how dates, times, and durations should be represented in the output, defaults to “FORMATTED_STRING”

Returns

operation result

Examples

Python

result = GOOGLE.get_all_sheet_values(spreadsheet_id)

Robot Framework

${values}=  Get All Sheet Values  ${SHEET_ID}  sheet1
get_document_entities(document: Document) List

Helper keyword for getting document entities from a Process Document response object.

For examples. see Process Document keyword

Parameters

document – the document response object

Returns

detected entities in the document response as a list

get_document_languages(document: Document) List

Helper keyword for getting detected languages from a Process Document response object.

For examples. see Process Document keyword

Parameters

document – the document response object

Returns

detected languages in the document response as a list

get_drive_file_by_id(file_id: str, suppress_errors: bool = False) Dict

Get file dictionary by its file id.

Parameters
  • file_id – id of the file in the Google Drive

  • suppress_errors – on True will log warning message instead of raising an exception, defaults to False (exception is raised)

Returns

dictionary containing file information

Example:

${file_dict}=  Get Drive File By ID    file_id=${FILE_ID}
get_drive_folder_id(folder: Optional[str] = None, parent_folder: Optional[str] = None, details: bool = False) str

Get file id for the folder

Parameters
  • folder – name of the folder to identify, by default returns drive’s root folder id

  • parent_folder – can be used to narrow search by giving parent folder name

  • details – on True will return folder dictionary, on False (default) folder id is returned

Returns

file id of the folder or file dictionary when details = True

Example:

${root_id}=    Get Drive Folder Id   # returns Drive root folder id
${folder_id}=  Get Drive Folder Id  subdir
get_sheet_by_name(spreadsheet_id: str, sheet_name: str)
get_sheet_formulas(spreadsheet_id: str, sheet_name: str)

Get formulas from the sheet.

Parameters
  • spreadsheet_id – id of the spreadsheet

  • sheet_name – name of the sheet

Returns

_description_

get_sheet_values(spreadsheet_id: str, sheet_range: Optional[str] = None, value_render_option: str = 'UNFORMATTED_VALUE', datetime_render_option: str = 'FORMATTED_STRING') List

Get values from the range in the spreadhsheet

Parameters
  • spreadsheet_id – target spreadsheet

  • sheet_range – target sheet range

  • value_render_option – how values should be represented in the output defaults to “UNFORMATTED_VALUE”

  • datetime_render_option – how dates, times, and durations should be represented in the output, defaults to “FORMATTED_STRING”

Returns

operation result

Examples

Python

result = GOOGLE.get_sheet_values(spreadsheet_id, "A1:C1")

Robot Framework

${values}=  Get Sheet Values  ${SPREADSHEET_ID}  A1:C1
get_spreadsheet_basic_information(spreadsheet_id: str) List

Get title, id, url and sheets information from the spreadsheet.

Parameters

spreadsheet_id – ID of the spreadsheet

Returns

operation result as an dictionary

get_spreadsheet_details(spreadsheet_id: str) Dict

Returns spreadsheet information as a dictionary.

Parameters

spreadsheet_id – ID of the spreadsheet

Returns

operation result as an dictionary

get_storage_bucket(bucket_name: str) Dict

Get Google Cloud Storage bucket

Parameters

bucket_name – name as string

Returns

bucket

Examples

Robot Framework

${result}=   Get Bucket   visionfolder
handle_mimetypes(parsed_parts, part, msg, folder_name)
init_apps_script(service_account: Optional[str] = None, credentials: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, scopes: Optional[list] = None, token_file: Optional[str] = None) None

Initialize Google Apps Script client

Parameters
  • service_account – file path to service account file

  • credentials – file path to credentials file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • scopes – list of extra authentication scopes

  • token_file – file path to token file

init_document_ai(service_account: Optional[str] = None, region: Optional[str] = 'us', use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Document AI client

Parameters
  • service_account – file path to service account file

  • region – region of the service

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

Robot Framework example:

# Init using Service Account from a file
Init Document AI   ${CURDIR}${/}service_account.json  region=eu
# Init using OAuth token from a file and default "us" region
Init Document AI   ${CURDIR}${/}token.json
# Init using service account file from the Robocorp Vault
Set Robocorp Vault
...         vault_name=DocumentAI
...         vault_secret_key=google-sa
Init Document AI    region=eu    use_robocorp_vault=True

Python example:

GOOGLE = Google()
GOOGLE.set_robocorp_vault("DocumentAI", "google-sa")
GOOGLE.init_document_ai(region="eu", use_robocorp_vault=True)
init_drive(service_account: Optional[str] = None, credentials: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, scopes: Optional[list] = None, token_file: Optional[str] = None) None

Initialize Google Drive client

Parameters
  • service_account – file path to service account file

  • credentials – file path to credentials file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • scopes – list of extra authentication scopes

  • token_file – file path to token file

init_gmail(service_account: Optional[str] = None, credentials: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, scopes: Optional[list] = None, token_file: Optional[str] = None) None

Initialize Google Gmail client

Parameters
  • service_account – file path to service account file

  • credentials – file path to credentials file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • scopes – list of extra authentication scopes

  • token_file – file path to token file

init_natural_language(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Natural Language client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_sheets(service_account: Optional[str] = None, credentials: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, scopes: Optional[list] = None, token_file: Optional[str] = None) None

Initialize Google Sheets client

Parameters
  • service_account – file path to service account file

  • credentials – file path to credentials file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • scopes – list of extra authentication scopes

  • token_file – file path to token file

init_speech_to_text(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Speech to Text client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_storage(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Storage client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_text_to_speech(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Text to Speech client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_translation(project_identifier: str, service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Translation client

Parameters
  • project_identifier – identifier for Translation project

  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_video_intelligence(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Video Intelligence client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

init_vision(service_account: Optional[str] = None, use_robocorp_vault: Optional[bool] = None, token_file: Optional[str] = None) None

Initialize Google Cloud Vision client

Parameters
  • service_account – file path to service account file

  • use_robocorp_vault – use credentials in Robocorp Vault

  • token_file – file path to token file

insert_sheet_values(spreadsheet_id: str, sheet_range: str, values: list, major_dimension: str = 'COLUMNS', value_input_option: str = 'USER_ENTERED') Dict

Insert values into sheet cells

Parameters
  • spreadsheet_id – target spreadsheet

  • sheet_range – target sheet range

  • values – list of values to insert into sheet

  • major_dimension – major dimension of the values, default COLUMNS

  • value_input_option – controls whether input strings are parsed or not, default USER_ENTERED

Returns

operation result

Examples

Python

values = [[11, 12, 13], ['aa', 'bb', 'cc']]
result = GOOGLE.insert_sheet_values(spreadsheet_id, "A:C", values)

Robot Framework

${values}   Evaluate   [[11, 12, 13], ['aa', 'bb', 'cc']]
${result}=  Insert Sheet Values   ${SPREADSHEET_ID}  A:B  ${values}
${result}=  Insert Sheet Values   ${SPREADSHEET_ID}  A:B  ${values}  ROWS
list_messages(user_id: str, query: str, folder_name: Optional[str] = None, label_ids: Optional[list] = None, max_results: Optional[int] = None, include_json: bool = False, include_spam: bool = False)

List messages

Parameters
  • user_id – user’s email address. The special value me can be used to indicate the authenticated user.

  • query – message query

  • folder_name – path where attachments are saved, default current directory

  • label_ids – message label ids

  • max_results – maximum number of message to return

  • include_json – include original response json

  • include_spam – include messages from SPAM and TRASH

Returns

messages

Example:

${messages}=    List Messages    me
...    from:mika@robocorp.com
...    folder_name=${CURDIR}${/}target
...    include_json=True
FOR    ${msg}    IN    @{messages}
    Log Many    ${msg}
END
list_processors(project_id: str, region: str) List

List existing document AI processors from given project and region.

Requires documentai.processors.list permission.

Parameters
  • project_id – Google Cloud project ID

  • region – Google Cloud region of the processor

Returns

list of available processors as a list

Robot Framework example:

@{processors}=    List Processors    ${PROJECT_ID}    eu
FOR    ${p}    IN    @{processors}
    # name: projects/PROJECT_ID/locations/REGION/processors/PROCESSOR_ID
    Log To Console    Processor name: ${p.name}
    Log To Console    Processor type: ${p.type_}
    Log To Console    Processor display name: ${p.display_name}
END

Python example:

processors = GOOGLE.list_processors(PROJECT_ID, "eu")
for p in processors:
    print(f"Processor name: {p.name}")
    print(f"Processor type: {p.type_}")
    print(f"Processor name: {p.display_name}")
list_shared_drive_files(query: Optional[str] = None, source: Optional[str] = None) List

Keyword for listing shared files in the source folder.

Alias keyword for Search Drive Files which can be used to list only files which have been shared.

Parameters
  • query – drive query string to find target files

  • source – source directory where query is executed

Returns

list of shared files

Example:

${shared}=    List Shared Drive Files    source=subfolder
FOR    ${file}    IN    @{shared}
    Log To Console    ${file}
END
list_storage_buckets() List

List Google Cloud Storage buckets

Returns

list of buckets

Examples

Robot Framework

${buckets}=   List Storage Buckets
FOR  ${bucket}  IN   @{buckets}
    Log  ${bucket}
END
list_storage_files(bucket_name: str) List

List files in the bucket

Parameters

bucket_name – name as string

Returns

list of object names in the bucket

Examples

Robot Framework

${files}=   List Storage Files  ${BUCKET_NAME}
FOR  ${bucket}  IN   @{files}
    Log  ${file}
END
list_supported_voices(language_code: Optional[str] = None) List

List supported voices for the speech

Parameters

language_code – voice languages to list, defaults to None (all)

Returns

list of supported voices

Examples

Robot Framework

${result}=   List Supported Voices   en-US
load_document_response(filepath: str) Document

Loads the binary object saved by Save Document Response into documentai.Document format which is accessible by helper keywords.

Parameters

filepath – source file to read binary document object from

Returns

processed document response object

Robot Framework example:

# load previously saved response
${document}=  Load Document Response  ${CURDIR}${/}google_processed.response
${entities}=  Get Document Entities  ${document}

Python example:

document = GOOGLE.load_document_response("google_doc.response")
entities = GOOGLE.get_document_entities(document)
for ent in entities:
    print(ent)
move_drive_file(file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, target: Optional[str] = None, multiple_ok: bool = False) List

Move file specified by id, file dictionary or query string into target folder

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target file, needs to match 1 file

  • source – name of the folder to move file from, is by default drive’s root folder id

  • target – name of the folder to move file into, is by default drive’s root folder id

  • multiple_ok – if True then moving more than 1 file

Returns

list of file ids

Example:

${source_id}=  Get Drive Folder Id  sourcefolder
${query}=      Set Variable  name contains '.json' and '${sourceid}' in parents
${files}=      Move Drive File  query=${query}  folder=target_folder  multiple_ok=True
parse_parts(msg_id, msg, parts, folder_name)

Utility function that parses the content of an email partition

process_document(project_id: str, region: str, processor_id: str, file_path: str, mime_type: Optional[str] = None) Document

Process document in the Google Cloud platform using given document processor ID within given project and region.

For a full list of Document response object attributes, please reference this page.

Parameters
  • project_id – Google Cloud project ID

  • region – Google Cloud region of the processor

  • processor_id – ID of the document processor

  • file_path – filepath of the document to process

  • mime_type – given mime type of document (optional), if not given it is auto detected

Returns

processed document response object

Robot Framework example:

${document}=    Process Document
...    project_id=${GOOGLE_PROJECT_ID}
...    region=eu
...    processor_id=${RECEIPT_PROCESSOR_ID}
...    file_path=${CURDIR}${/}mydocument.pdf
${entities}=    Get Document Entities    ${document}
FOR  ${ent}  IN  @{entities}
    Log To Console  Entity: ${ent}
END
${languages}=    Get Document Languages    ${document}
Log To Console    Languages: ${languages}

Python example:

document = GOOGLE.process_document(
    project_id=PROJECT_ID,
    region="eu",
    processor_id=PROCESSOR_ID,
    file_path="./files/mydocument.pdf",
)
entities = GOOGLE.get_document_entities(document)
for ent in entities:
    print(ent)
languages = GOOGLE.get_document_languages(document)
for lang in languages:
    print(lang)
recognize_text_from_audio(audio_file: Optional[str] = None, audio_uri: Optional[str] = None, encoding: Optional[str] = None, language_code: str = 'en_US', audio_channel_count: int = 2, sample_rate: Optional[int] = None) Dict

Recognize text in the audio file

Parameters
  • audio_file – local audio file path

  • audio_uri – Google Cloud Storage URI

  • encoding – audio file encoding

  • language_code – language in the audio

  • audio_channel_count – number of audio channel

  • sample_rate – rate in hertz, for example 16000

Returns

recognized texts

Examples

Robot Framework

${result}=  Recognize Text From Audio   audio_file=${CURDIR}${/}test.mp3
remove_all_drive_shares(file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, suppress_errors: bool = False) List

Keyword for removing all shares from selected files (only owner permission is retained).

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target files

  • suppress_errors – on True will log warning message instead of raising an exception, defaults to False (exception is raised)

Returns

list of dictionaries containing information of file permissions removed

Example:

${removed}=  Remove All Drive Shares    file_id=${FOLDER_ID}
remove_drive_share_by_criteria(email: Optional[str] = None, domain: Optional[str] = None, permission_id: Optional[str] = None, file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, suppress_errors: bool = False) List

Keyword for removing share from file or folder based on criteria.

Parameters file_id, file_dict, query and source can be used to select files from which sharing is removed.

Parameters email, domain or permission_id can be used to select which share is removed from selected files.

Parameters
  • email – email address of the permission to remove

  • domain – domain name of the permission to remove

  • permission_id – id of the permission to remove

  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target files

  • source – name of the folder to search files in, is by default drive’s root folder

  • suppress_errors – on True will log warning message instead of raising an exception, defaults to False (exception is raised)

Returns

list of dictionaries containing information of file permissions removed

Example:

# Remove domain shares for files in the folder ${FOLDER_NAME}
${removed}=    Remove Drive Share By Criteria
...    domain=robocorp.com
...    source=${FOLDER_NAME}
# Remove email share for a file
${removed}=    Remove Drive Share By Criteria
...    query=name = 'okta.png'
...    email=robocorp.tester@gmail.com
remove_drive_share_by_permission_id(permission_id: str, file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, suppress_errors: bool = False) Dict

Keyword for removing share permission of file or folder permission id.

Parameters file_id, file_dict, query and source can be used to select files from which sharing is removed.

Parameters
  • permission_id – id of the permission to remove

  • file_id – drive file id

  • file_dict – file dictionary returned by Search Drive Files

  • query – drive query string to find target file, needs to match 1 file

  • source – name of the folder to search files in, is by default drive’s root folder

  • suppress_errors – on True will log warning message instead of raising an exception, defaults to False (exception is raised)

Returns

dictionary of permission response

Example:

${share}=   Add Drive Share
...  query=name = 'sharable-files' and mimeType = 'application/vnd.google-apps.folder'
...  email=robocorp.tester@gmail.com
#
# actions on shared files in the folder 'shareable-files' ....
#
Remove Drive Share By Permission Id   ${share}[permission_id]  ${share}[file_id]
rename_sheet(spreadsheet_id: str, sheet_name: str, new_sheet_name: str)

Rename sheet in the spreadsheet

Parameters
  • spreadsheet_id – id of the spreadsheet

  • sheet_name – existing name of the sheet

  • new_sheet_name – name for the new sheet

Returns

operation result as an dictionary

Examples

Python

result = GOOGLE.rename_sheet(spreadsheet_id, "Sheet1", "New name")

Robot Framework

${result}=    Rename Sheet    ${SPREADSHEET_ID}    Sheet1   New name
run_script(script_id: str, function_name: str, parameters: Optional[dict] = None) None

Run the Google Apps Script function

Parameters
  • script_id – Google Script identifier

  • function_name – name of the script function

  • parameters – script function parameters as a dictionary

Raises

AssertionError – thrown when Google Script returns errors

Example:

&{params}=    Create Dictionary  formid=aaad4232  formvalues=1,2,3
${response}=  Run Script    abc21397283712da  submit_form   ${params}
Log Many   ${response}
save_document_response(document: Document, filepath: str) None

Save Process Document response into a binary file.

Parameters
  • document – response document object

  • filepath – target file to save binary object into

Robot Framework example:

${document}=    Process Document
...    project_id=101134120147
...    region=eu
...    processor_id=${RECEIPT_PROCESSOR}
...    file_path=${file_in}
# save response for later
Save Document Response  ${CURDIR}${/}google_processed.response

Python example:

document = GOOGLE.process_document(
    project_id=PROJECT_ID,
    region="eu",
    processor_id=PROCESSOR_ID,
    file_path="./files/receipt1.jpg",
)
GOOGLE.save_document_response(document, "receipt.response")
search_drive_files(query: Optional[str] = None, recurse: bool = False, source: Optional[str] = None) List

Search Google Drive for files matching query string

Parameters
  • query – search string, defaults to None which means that all files and folders are returned

  • recurse – set to True if search should recursive

  • source – source directory where query is executed

Returns

list of files

Example:

${files}=  Search Drive Files   query=name contains 'hello'
${files}=  Search Drive Files   query=modifiedTime > '2020-06-04T12:00:00'
${files}=  Search Drive Files   query=mimeType contains 'image/' or mimeType contains 'video/'
${files}=  Search Drive Files   query=name contains '.yaml'  recurse=True
${files}=  Search Drive Files   query=name contains '.yaml'  source=datadirectory
send_message(sender: str, to: str, subject: str, message_text: str, attachments: Optional[list] = None, html: bool = False)

Send an email message.

Parameters
  • sender – message sender

  • to – message recipient

  • subject – message subject

  • message_text – message body text

  • attachment – list of files to add as message attachments

  • html – set to True if message body is HTML (default False, plain text)

Returns

sent message

Example:

${attachments}=  Create List
...  ${CURDIR}${/}random.txt
...  ${CURDIR}${/}source.png
Send Message    me
...    mika@robocorp.com
...    message subject
...    body of the message
...    ${attachments}
set_audio_type(audio_file, audio_uri)
set_headers_to_message_dict(payload, message_id, response)
set_image_type(image_file: Optional[str] = None, image_uri: Optional[str] = None)
set_list_parameters(user_id, query, label_ids, max_results, include_spam)
set_robocorp_vault(vault_name: Optional[str] = None, vault_secret_key: Optional[str] = None, auth_type: str = 'serviceaccount')

Set Robocorp Vault name and secret key name :param vault_name: Robocorp Vault name :param vault_secret_key: Robocorp Vault secret key name :param auth_type: either serviceaccount or token

synthesize_speech(text: str, language: str = 'en-US', name: str = 'en-US-Standard-B', gender: str = 'MALE', encoding: str = 'MP3', target_file: str = 'synthesized.mp3') List

Synthesize speech synchronously

Parameters
  • text – input text to synthesize

  • language – voice language, defaults to “en-US”

  • name – voice name, defaults to “en-US-Standard-B”

  • gender – voice gender, defaults to “MALE”

  • encoding – result encoding type, defaults to “MP3”

  • target_file – save synthesized output to file, defaults to “synthesized.mp3”

Returns

synthesized output in bytes

Examples

Robot Framework

${result}=   Synthesize Speech   ${text}
to_A1_notation(column_number: int, row_number: int)

Convert a column number and a row number into a cell reference.

Parameters
  • column_number – column number to convert

  • row_number – row number to convert

Returns

cell reference string

to_column_letter(number: int)

Convert a column number into a column letter(s).

Parameters

number – column number to convert

Returns

column letter(s)

translate(text: Union[list, str], source_language: Optional[str] = None, target_language: Optional[str] = None, mime_type: Optional[TextType] = None) Dict

Translate text

Parameters
  • text – text to translate

  • source_language – language code

  • target_language – language code

  • mime_type – text or html

Returns

translated text

Examples

Robot Framework

${result}=   Translate   ${TEXT}  target_language=de
update_drive_file(file_id: Optional[str] = None, file_dict: Optional[dict] = None, query: Optional[str] = None, source: Optional[str] = None, action: UpdateAction = UpdateAction.star, multiple_ok: bool = False) int

Update file specified by id, file dictionary or query string

Possible actions: - star - unstar - trash - untrash

Parameters
  • file_id – drive file id

  • file_dict – file dictionary returned by Drive Search Files

  • query – drive query string to find target file, needs to match 1 file

  • source – source directory where query is executed

  • action – update action, default star file

  • multiple_ok – set to True if it is ok to perform update on more than 1 file

Returns

number of updated files

Example:

${folder_id}=  Get Drive Folder Id   datafolder
${updated}=    Update Drive File  query=name contains '.json' and '${folder_id}' in parents
...            action=star
...            multiple_ok=True
update_sheet_values(spreadsheet_id: str, sheet_range: str, values: list, major_dimension: str = 'COLUMNS', value_input_option: str = 'USER_ENTERED') Dict

Insert values into sheet cells

Parameters
  • spreadsheet_id – target spreadsheet

  • sheet_range – target sheet range

  • values – list of values to insert into sheet

  • major_dimension – major dimension of the values, default COLUMNS

  • value_input_option – controls whether input strings are parsed or not, default USER_ENTERED

Returns

operation result

Examples

Python

row_data = [[11, 12, 13], ['aa', 'bb', 'cc']]
result = GOOGLE.update_sheet_values(
    spreadsheet_id,
    "A1:C1",
    row_data,
    "ROWS
    )

Robot Framework

${row}  Evaluate   [[22, 33 ,44]]
${result}=  Update Sheet Values
...   ${SPREADSHEET_ID}
...   A6:C6
...   ${row}
...   ROWS
upload_drive_file(filename: Optional[str] = None, folder: Optional[str] = None, overwrite: bool = False, make_dir: bool = False) str

Upload files into Drive

Parameters
  • filename – name of the file to upload

  • folder – target folder for upload

  • overwrite – set to True if already existing file should be overwritten

  • make_dir – set to True if folder should be created if it does not exist

Returns

uploaded file id

Example:

${file1_id}=  Upload Drive File  data.json  # Upload file to drive root
${file2_id}=  Upload Drive File  newdata.json  new_folder  make_dir=True
${file3_id}=  Upload Drive File  data.json  overwrite=True
upload_storage_file(bucket_name: str, filename: str, target_name: str) None

Upload a file into a bucket

Parameters
  • bucket_name – name as string

  • filename – filepath to upload file

  • target_name – target object name

Examples

Robot Framework

Upload Storage File  ${BUCKET_NAME}
...   ${CURDIR}${/}test.txt    test.txt
upload_storage_files(bucket_name: str, files: dict) None

Upload files into a bucket

Example files: files = {“mytestimg”: “image1.png”, “mydoc”: “google.pdf”}

Parameters
  • bucket_name – name as string

  • files – dictionary of object names and filepaths

Examples

Robot Framework

${files}=   Create Dictionary
...   test1.txt   ${CURDIR}${/}test1.txt
...   test2.txt   ${CURDIR}${/}test2.txt
Upload Storage Files   ${BUCKET_NAME}   ${files}