Google Classroom API Project Setup

Modified on Thu, Jun 20 at 8:29 AM

TABLE OF CONTENTS


Your very first step in enabling the Google Classroom Module in Genesis is to create a new Project in your Google Workspace for Education console that gives the proper integration permissions to Genesis.

There is a video presentation of this process found here . Google setup changes often so video may be slightly out of date. Follow guide below for more updated process.


Google Developer Console

Create Project

Go to console.cloud.google.com/apis/dashboard

Click “Create New Project” or “Project name” next to Google Cloud Platform in the top left


In the top right select “New Project”


Name your project something descriptive that will make it easier to find such as “Genesis Service Account”. Make sure your organization and location are set correctly as well. If you do not see your Organization or Location, stop and contact your google administrator before continuing.


Hit “Create”. After it loads hit the project drop down again and select your newly created project. (Note: It my take a minute or so for the project to be created and load)


Enable Google Classroom

Once you are in type “classroom” into the top search bar and click “Google Classroom API” in the search box.

And then Click “Enable”

Make sure your project is still “Genesis Service Account” (or whatever name you chose) when you enable google classroom.


Create Service Account

On the next page that appears, click Credentials

Click “Manage Service accounts” on top of the “Service Accounts” table on the right side


From there click “+Create Service Account”


Name your service account anything you want (In our example we named it “GenesisServiceAccount”) then click DONE

Note: The name you choose where will be displayed whenever a teacher posts something in classroom. So in this example if a teacher made an assignment it would show up in the activity feed as:

"Teacher x posted a new assignment via GenServiceAccount: MP1 HW 5"


After click into the service account by clicking the email link.


Then “Show Domain-wide Delegation”.   If you do not see a “Show Domain-wide Delegation" button but see a Client ID listed, you can skip this step and proceed to "Google Admin Console"


Then “Enable Google Workspace Domain-wide Delegation”

After checking that the following warning will appear:

Just name it “Genesis Classroom Integration” and keep the default email address that appears. Users will not be shown this consent screen at any time. Then hit save.


Download Service Account Key

Next Click “Keys” and then “Add Key -> Create new Key”


In the pop up dialog make sure key type is JSON and then hit CREATE

Save the file, this will need to be uploaded to Genesis later.


Go back to Details and click “Show Domain-Wide Delegation” again, copy the value under Client ID


Google Admin Console

Next sign into your google admin console (admin.google.com) and click the menu on the top right and go to “Security -> API Controls


On the new page, click Manage Domain Wide Delegation on the bottom.


Then click Add New and paste the client id in the top box, and the following scopes in the bottom

https://www.googleapis.com/auth/classroom.topics,https://www.googleapis.com/auth/classroom.announcements.readonly,https://www.googleapis.com/auth/classroom.courses,https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly,https://www.googleapis.com/auth/classroom.push-notifications,https://www.googleapis.com/auth/classroom.rosters.readonly,https://www.googleapis.com/auth/classroom.student-submissions.students.readonly,https://www.googleapis.com/auth/classroom.coursework.me.readonly,https://www.googleapis.com/auth/classroom.rosters,https://www.googleapis.com/auth/classroom.student-submissions.me.readonly,https://www.googleapis.com/auth/classroom.coursework.me,https://www.googleapis.com/auth/classroom.courses.readonly,https://www.googleapis.com/auth/classroom.coursework.students,https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly,https://www.googleapis.com/auth/classroom.profile.emails,https://www.googleapis.com/auth/classroom.coursework.students.readonly,https://www.googleapis.com/auth/classroom.guardianlinks.students,https://www.googleapis.com/auth/classroom.topics.readonly,https://www.googleapis.com/auth/classroom.profile.photos,https://www.googleapis.com/auth/classroom.announcements,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile

 

 Then click Authorize

 

Next, navigate back to the Service Accounts page and repeat the steps above to create an additional Service Account within this project.  Once you have completed the setup for you second Service Account and have two json key files created.  Process to the Genesis Configuration.


Genesis Configuration

In Genesis, navigate to the “Setup ->Google -> Service Accounts” page.

You will need to load  the two json files you down loaded previously.  To do so select the Browse button and select the downloaded file. You will then need to select the Gradebook account and "Upload Service Account JSON" for one file.  Then again for the Admin account.  When done, your screen should show a json file under the Gradebook and Admin sections as seen below.


Next, navigate to the Setup > Google > Classroom Setup > Settings tab.

You will need to enter in the User Account/Email of a user in your Google workspace that is a part of the "Super Admin" group.  Enter the email into the Admin Email (Super Admin User): text box and save.




Next, you will need to enter the Google email address of your Staff and Students onto the User and Student objects in Genesis. 

This can be done using the Tools located on the bottom of the Setup > Google > Email Setup and Verification. 



This process relies on Users in Genesis being linked to the staff members that represent them.  If a teacher's USER account in Genesis does not list a teacher's TEACHER/STAFF record as representing them, this process will not work.  You may use the User to Staff screen (StaffStaff Tools User To Staff) to help associate non-associated users by searching for users with "no representing staff".  The screen will help you to update them in bulk.


Google email addresses for staff will be stored on the Genesis User Account that represents that staff member under the Google Email Address field.  It will also be stored on the staff member.  These Google Email fields are read-only.  They will be populated and updated from the source chosen in the Tools page's "Populate 'Google Email Address:" Sync and Save tool.  This sync will happen automatically.  You will not need to run this more than once.

Google email addresses for Students are stored on the Student in one of three places.  The student's primary email address on their contact card, a user text field, or their student portal account logonid.



Lastly, click the "Test Google Classroom Connection" to test and enable the integration.

That's it.  Remember, even though the integration is now live, teachers will not have access until given the proper securable locations.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article