Oracle Integration Cloud – Gmail Adapter

As part of a wider use case involving OIC, ODA and OCI AI Services, I need to be able to get emails. For that I will try out the OIC Google Gmail Adapter.

All about it here.

Pre-Requisites

On the Google side we need to configure a couple of things.

Under your google account go to https://console.developers.google.com/

Choose an existing project or create a new one. Under the option Library, search for Gmail API.

Enable it.
Create an OAuth ID type of credentials

Add your callback URL

Create a connection

Pick up the Gmail Adapter from the list and provide a Client ID, Client Secret, and the Scope.

Once that is done Provide Consent, which will finalize the connection. Make sure your user is added in the Gmail OAuth consent list.

This is the list of available scopes:

  • https://mail.google.com/
  • https://www.googleapis.com/auth/gmail.compose
  • https://www.googleapis.com/auth/gmail.metadata
  • https://www.googleapis.com/auth/gmail.labels
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/gmail.send

Available Operations:

  • Get Thread
  • Trash Thread
  • List Messages
  • Get Message
  • Get Message Attachment
  • Send Message
  • List Drafts
  • Create Draft
  • Get Draft
  • Delete Draft
  • Send Draft
  • List Labels
  • Create Label
  • Delete Label

Create an Integration

For this exercise I will simply read the last email. For that we need to call ListMessages, which will retrieve a list of email ids (based on our query parameters) and then with the method GetMessage, we can ready a specific email.

The Integration will be an AppDriven one with a REST trigger that takes no parameters and returns the email body in the response.

Configure Gmail Connection

I will choose 3 query parameters.

Everything will be hardcoded – it’s the fast way πŸ™‚

maxResults: 1

includeSpamTrash: false

q: from:” danielxxxx@oracle.com”

The above says that I want 1 message back, from the email “danielxxxx@oracle.com:

Add another Gmail Connection – Get Message

Ideally one would get a list of messages and then perform a For-Each and loop over all of those email ids. In this case there is only one id returned, so no need for a loop. We pass that id along to the next method (GetMessage)

This is how the integration looks like.

The last mapping is the Map to GetLastEmail

Test

The test confirms it all, and returns the last email send by my Oracle’s email to my Gmail account!