Google is a library for operating with Google API endpoints.
Usage requires the following steps:
- Create a GCP project
- Create a service account key file (JSON) and save it to a place the robot can use it
- Enable APIs
- Install rpaframework[google]
Google authentication
Authentication for Google is set with service credentials JSON file which can be given to the library in three different ways or with credentials.json, which is used for OAuth authentication.
Methods when using service credentials:
- Method 1 as environment variables, GOOGLE_APPLICATION_CREDENTIALS with path to JSON file.
- Method 2 as keyword parameter to Init Storage Client for example.
- Method 3 as Robocloud vault secret. The vault name and secret key name needs to be given in library init or with keyword Set Robocloud Vault. Secret value should contain JSON file contents.
Method 1. service credentials using environment variable
*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services # NO parameters for Vision Client, expecting to get JSON # with GOOGLE_APPLICATION_CREDENTIALS environment variable Init Vision Client
Method 2. service credentials with keyword parameter
*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services Init Speech To Text Client /path/to/service_credentials.json
Method 3. setting Robocloud Vault in the library init
*** Settings *** Library RPA.Cloud.Google ... robocloud_vault_name=googlecloud ... robocloud_vault_secret_key=servicecreds *** Tasks *** Init Google services Init Storage Client use_robocloud_vault=${TRUE}
Method 3. setting Robocloud Vault with keyword
*** Settings *** Library RPA.Cloud.Google *** Tasks *** Init Google services Set Robocloud Vault vault_name=googlecloud vault_secret_key=servicecreds Init Storage Client use_robocloud_vault=${TRUE}
Method when using OAuth credentials.json:
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 Client /path/to/credentials.json ${SCRIPT_SCOPES}
Creating and using OAuth token file
The token file can be created using credentials.json by running command:
rpa-google-oauth --service drive or rpa-google-oauth --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 where it needs to be in variable google-oauth.
Example Vault content.
"googlecloud": { "oauth-token": "gANfd123321aabeedYsc" }
Using the Vault.
*** Keywords *** Set up Google Drive authentication Set Robocloud Vault vault_name=googlecloud Init Drive Client use_robocloud_vault=True
Requirements
Due to number of dependencies related to Google Cloud services this library has been set as an optional package for rpaframework.
This can be installed by opting in to the google dependency:
pip install rpaframework[google]
Examples
Robot Framework
*** Settings *** Library RPA.Cloud.Google *** Variables *** ${SERVICE CREDENTIALS} ${/}path${/}to${/}service_credentials.json ${BUCKET_NAME} testbucket12213123123 *** Tasks *** Upload a file into a new storage bucket [Setup] Init Storage Client ${SERVICE CREDENTIALS} Create Bucket ${BUCKET_NAME} Upload File ${BUCKET_NAME} ${/}path${/}to${/}file.pdf myfile.pdf @{files} List Files ${BUCKET_NAME} FOR ${file} IN @{files} Log ${file} END
Python
from RPA.Cloud.Google import Google library = Google service_credentials = '/path/to/service_credentials.json' library.init_vision_client(service_credentials) library.init_text_to_speech(service_credentials) response = library.detect_text('imagefile.png', 'result.json') library.synthesize_speech('I want this said aloud', target_file='said.mp3')