LogoLogo
6.1
  • Docs
  • Connector Configuration
  • Knowledge Base
  • Changelog
6.1
  • Introduction
  • Getting Started
    • Build and Publish an Integration
    • Build and Run an Automation
    • Build and Run an AI agent
    • Build a Custom Connector
    • Embed into Your Application
    • Monitor & Troubleshoot
    • Access Appmixer REST API
    • Install and Update Connectors
    • Connector Configuration
    • Handle Flow Errors
    • Use App Events
    • End User Guide
  • API
    • Authentication
    • Flows
    • Apps
    • Accounts
    • User
    • Insights
    • Files
    • Data Stores
    • Connector Configuration
    • People Task
    • ACL
    • Charts
    • Config
    • Modifiers
    • Public Files
    • Unprocessed Messages
    • Variables
  • Building Connectors
    • Flow
    • Component
    • Basic Structure
    • Manifest
      • name
      • label
      • icon
      • description
      • auth
      • inPorts
      • outPorts
      • properties
      • quota
      • tick
      • private
      • webhook
      • httpRequestMethods
      • state
      • author
      • marker
      • localization
      • firePatterns
    • Behaviour
    • Dependencies
    • Authentication
    • Quotas & Limits
    • Example: twilio.SendSMS
    • Example: Webhook Trigger
  • Appmixer UI SDK
    • Introduction
    • Installation
    • Quick Start
    • Constructor
    • API Module
    • UI & Widgets
      • Flow Manager
      • Designer
      • Insights Logs
      • Insights Chart Editor
      • Insights Dashboard
      • Accounts
      • Storage
      • People Tasks
      • Connectors
      • Integrations
      • Wizard
    • Custom API
  • Customizing Embedded UI
    • Custom Theme
    • Custom Strings
    • Custom Component Strings
  • Appmixer Backoffice
    • Getting Started
    • System Configuration
  • Appmixer CLI
    • Getting Started
    • OpenAPI Connector Generator
      • Getting started
      • Open API Extensions
      • Examples
  • Appmixer Self-Managed
    • Installation Docker Compose
    • Installation AWS ECS
    • Getting Started
    • Authentication Hub
    • Additional Configuration
    • Appmixer Architecture
    • Appmixer Deployment Models
  • Tutorials
    • Appmixer Virtual Users
    • Flows Metadata & Filtering
    • Access Control
    • Sharing Flows
    • People Tasks
    • Customizing modifiers
  • App Registration
    • Airtable
    • ActiveCampaign
    • Asana
    • Azure Cognitive Services
    • Blackboard
    • DeepAI
    • DocuSign
    • Dropbox
    • Freshdesk
    • Google
    • Highrise
    • Hubspot
    • Jira
    • Jotform
    • LinkedIn
    • Mailchimp
    • Microsoft
    • Microsoft Dynamics 365 CRM
    • Monday
    • Open AI
    • Pipedrive
    • Quickbooks
    • Redmine
    • Salesforce
    • Schoology
    • Screenshot API
    • ServiceNow
    • Slack
    • Trello
    • Typeform
    • Twilio
    • Twitter
    • Utilities
      • AI
      • Email
      • Language
      • Tasks
      • Test
      • Weather
      • AppEvents
    • Xero
    • Zendesk Tickets
    • Zendesk Chat
    • Zoho
  • Connectors
    • Connector Request
Powered by GitBook
On this page
  • Application verification
  • Register Oauth2 app
  • OAuth consent screen
  • Client ID and Client Secret
  • Custom callback URL
  • Domain verification

Was this helpful?

Export as PDF
  1. App Registration

Google

PreviousFreshdeskNextHighrise

Was this helpful?

Application verification

In 2020 Google introduced Application verification If an app uses Google APIs to access Google users’ data. This makes it impossible to use the Appmixer Google modules in production without the verification process. Such a verification process has to be done by you.

Most of the Google modules need what Google marks as Sensitive or Restricted Scope in order to work. For example, the Gmail module needs scope to create a new email and to get new emails.

Originally, the Gmail module was the only one affected by this new Google policy. But new scopes are being marked as restricted. Later, they shut down the older Spreadsheets API, and with the new API, the only way to get a list of users Spreadsheets is to use the Drive API and restricted scope .

The last (up to now) module affected by this policy is the Drive module.

Register Oauth2 app

Go to the Google developer console at and create a new project.

When the project is created, add some APIs.

Add the Gmail API.

The Google Sheets API.

The Google Drive API.

The Google Calendar API.

The Analytics API.

The YouTube API.

OAuth consent screen

The next step is the OAuth consent screen.

User Type - Internal vs External. The Internal user type allows you to use the Google modules without the app verification process mentioned at the beginning of this page. However, the modules will work only for accounts within your organization.

We are going to choose External for the purpose of this tutorial.

On the next page, leave the scopes empty.

You can add test users, but you can do this later. Only users added as test users will be able to authenticate!

Here is the Oauth consent screen configured. The app is in the testing mode, it is external (for users outside your organization). No more than 100 accounts (user cap) can be used with this application.

Client ID and Client Secret

We need a client ID and a client secret.

Choose the Web application type and give it a name and authorize redirect URI.

For the purpose of this tutorial, we are going to use localhost:2200 which is the default port for the Appmixer API when running on localhost. If you are creating an Oauth application for your production/QA, the URI of your server will be here. The suffix /auth/google/callback will remain there.

You will get your Client ID and Client Secret.

Custom callback URL

By default the callback URL passed to Google is in the form of <your-api-url>/auth/appmixer:google/callback. However in some cases, you could need to pass a different callback URL. You can do this by inserting a callbackUrl value in the service configuration:

Domain verification

When you use a Google Webhook component without a verified domain, you will receive the Unauthorized WebHook callback channel error.

First, open the Google developers console and your Appmixer project and follow the instructions in the next picture.

Add your Appmixer tenant API URL (api.YOUR_TENANT.appmixer.cloud) and continue to verify the domain ownership. Click 'Take me there' and then 'Add a property'.

Again, use api.YOUR_TENANT.appmixer.cloud. Then download the HTML verification file.

After you download your HTML verification file, upload it via the Appmixer Backoffice interface to the Public Files section on the left. When you are done you should see your file listed:

Click the 'Verify' button to finish the verification process.

Now, you can go back to the developer console and add the api.YOUR_TENANT.appmixer.cloud domain once more. But this time, because it's already verified, it will appear in the list of your domains.

The new domain has to be added to the OAuth consent screen as well.

They have to be inserted into the Appmixer. You can use the to do that.

In order to use Google API Webhooks, you have to verify your domain ownership. More about domain verification can be found . If you use the Appmixer Self-Managed package and you run Appmixer on your own servers using your custom domain, you can use records to verify your domain ownership. Otherwise, if you are an Appmixer Hosted customer, you can use the to verify your Appmixer tenant domain (api.YOUR_TENANT.appmixer.cloud) at Google.

Backoffice
here
CNAME
HTML file method
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/drive.metadata.readonly
https://console.developers.google.com/
Developer Console
New Project
Creating appmixer:google service configuration
Setting clientId and clientSecret
Setting a custom callback URL for Google Auth
Domain verification
Download HTML verification file
Google verification file uploaded via Backoffice