Google Workspace

Content

Overview

The default configuration of Google Workspace does not allow external software to interact with the agenda of meeting rooms. The purpose of this document is to describe what has to be configured in Google Workspace so that ROOMZ can read and interact with the agenda of the room. 

All these steps assume that you are logged to Google with a super admin account.

Create an application

Connect to the Admin Google APIs console available at :https://console.cloud.google.com/, using your super admin account. Once logged click on the NewProject button. This button can be found in the Projects, on the top of the screen 

Enter a name for your application, and click on the Create button.

Create a service account

From the Admin Google APIs home screen, open the contextual menu on top right of the console and click on Project settings.

Click on Service accounts, on the left.


Click on Create Service account 

Enter an account name, for instance roomzserviceaccount and select the role Service Account User

Save the service account by clicking Done. Step 2 and 3 can be ignored

Go back to your list of service accounts and click on the 3 dots, on the corresponding line. Choose Manage keys

Create the key in *.json format. When you click on the Add Key button, a file containing the credentials of the service account will be downloaded on your local machine. Make sure you know where you store this file because you won't be able to download it anymore. This file will be necessary to connect the ROOMZ Portal to Google Workspace.

After downloading the file and closing the dialog, you will be able to get the service account's client ID and email address.

You should now have gathered your service account's Private Key fileClient ID and email address. You are ready to delegate domain-wide authority to your service account.

Delegate domain-wide authority to your service account (skip if you don't have a Google Workspace account)

To access user data on a Google Workspace domain, the service account that you created needs to be granted access by a super administrator for the domain. For more information about domain-wide delegation, see Control Google Workspace API access with domain-wide delegation.

To delegate domain-wide authority to a service account:

  1. From your Google Workspace domain’s Admin console, go to Main menu menu> Security > API controls.

     

  2. In the Domain wide delegation pane, select Manage Domain Wide Delegation.

  3. Click Add new.

  4. In the Client ID field, enter the client ID obtained from the service account creation steps above.

  5. In the OAuth Scopes field, enter this list of scopes : 

    1 https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/admin.directory.user.readonly
  6. Click Authorize.

Enable Google APIs

From the Google APIs Dashboard available at https://console.cloud.google.com click on the Library on the left menu.

Then on Google APIs Library screen, select the group Google Workspace on the left menu.

Remember how to proceed to this step to display only Google Workspace APIs because you will need to come back to this screen a few steps later.

Click on the Google Calendar API and enable it.

As soon as the Google Calendar API is activated, go back to the Google APIs Library and search for Google Workspace again.

Find the Admin SDK API in Google Workspace and enable it.

Manage rooms resources

From the Google Admin console home screen, Click on Apps.


Then click on Google Workspace 

Then click on Calendar

Adapt the sharing settings at least as follows, for the Primary and Secondary Calendars 

 

For the secondary calendars, you might have to go to Applications - Google Workspace - Calendar - General Settings

Change the External Sharing options for secondary calendars to “Make changes”

 

 

In order to create a new meeting room, click on Resources

Click on the yellow "plus" icon and fill in the requested information 

 

Regarding the Type field, In order to create a meeting room, you need to create a building first 

After saving the resource, you can reopen it and identify its email address (Resource email)

Copy this email address somewhere as you will need it at least in order to map your meeting room into the ROOMZ Server.

Share the resource(s) with the Service Account

This step is often overlooked and forgotten, but is necessary if you want Instant Book and Instant Release to work from the ROOMZ Displays. When the sharing with the service account is not done properly, you will get a Connection to the server failed message on the device when trying to book or release a room with the Display

In order to share a calendar with the service account on the ROOMZ Server, you need to add the room's calendar in your calendar's list.

Go to your calendar by connecting to: https://calendar.google.com

Search for Other Calendars on the left side of the screen, and add a new calendar

Then choose Browse resources

Add the wished resource to your calendar : here for example, Weisshorn


Go back to your calendar (https://calendar.google.com
Click on the room's name on the left of the screen and open Settings and sharing

Scroll down to Share with specific people

Click Add People, you will arrive on this page: 

Share the room with the email address of the service account you created (and wrote down) a few minutes ago. Make sure to select Make changes to events

Yeah! Google is configured!

Next steps

You can then continue the setup in the ROOMZ Portal: Booking System and Resources connection