RPA.Cloud.Google

Google is a library for operating with Google API endpoints.

Usage requires the following steps:

  • Create a GCP project
  • Enable approriate APIs
  • Create credentials (OAuth or service account)
  • Install rpaframework-google package

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.

Methods when using service account:

  • Method 1 as environment variables, GOOGLE_APPLICATION_CREDENTIALS with path to service account file.
  • Method 2 as keyword parameter to Init Storage for example.
  • Method 3 as Robocorp vault secret. The vault name and secret key name needs to be given in library init or with keyword Set Robocorp Vault. Secret value should contain JSON file contents.

Method 1. service account using environment variable

*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services # NO parameters for Init Vision, expecting to get JSON # with GOOGLE_APPLICATION_CREDENTIALS environment variable Init Vision

Method 2. service account with keyword parameter

*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services Init Speech To Text /path/to/service_account.json

Method 3. setting Robocorp Vault in the library init

*** Settings *** Library RPA.Cloud.Google ... vault_name=googlecloud ... vault_secret_key=servicecreds *** Tasks *** Init Google services Init Storage

Method 3. setting Robocorp Vault with keyword

*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services Set Robocorp Vault vault_name=googlecloud vault_secret_key=servicecreds Init Storage use_robocorp_vault=${TRUE}

Methods when using OAuth token:

  • Method 1 as keyword parameter token_file to Init Storage for example.
  • Method 2 as Robocorp vault secret. The vault name and secret key name needs to be given in library init or with keyword Set Robocorp Vault. Secret value should contain JSON file contents.

Method 1. The Google Apps Script and Google Drive services are authenticated using this method.

*** Settings *** Library RPA.Cloud.Google *** Variables *** @{SCRIPT_SCOPES} forms spreadsheets *** Tasks *** Init Google OAuth services Init Apps Script token_file=oauth_token ${SCRIPT_SCOPES}

Method 2. setting Robocorp Vault in the library init

*** Settings *** Library RPA.Cloud.Google ... vault_name=googlecloud ... vault_secret_key=oauth ... cloud_auth_type=token *** Tasks *** Init Google services Init Storage

Creating and using OAuth token file

The token file can be created using credentials.json by running command:

rpa-google-oauth --credentials <filepath> --service drive or rpa-google-oauth --credentials <filepath> --scopes drive.appdata,drive.file,drive.install

This will start web based authentication process, which outputs the token at the end. Token could be stored into Robocorp Vault.

Example Vault content.

"googlecloud": { "oauth-token": "gANfd123321aabeedYsc" }

Using the Vault.

*** Keywords *** Set up Google Drive authentication Set Robocorp Vault vault_name=googlecloud ... vault_secret_key=oauth-token ... cloud_auth_type=token Init Drive

Installation

This library, RPA.Cloud.Google is available via rpaframework-google package.

Check the latest package version from PyPI.

Examples

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

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')