TABLE OF CONTENTS
Getting Started
- Create Project in Google Dev Console
- Make a new project
- Make sure the Google Classroom API (found by searching) is enabled for project
- Create Credential
- Create 2 service accounts
- This is where the Client ID will first appear
- If "Show Domain-wide Delegation" is an option, click and then press "enable Google Workspace Domain-wide Delegation"
- Under service accounts, go to Keys and add key -> create new key, make sure key is JSON (must be done for each service account)
- Go to Google Admin Console admin.google.com
- In the menu go to Security then API Controls
- Scroll to the bottom, hit Manage Domain Wide Delegation
- Add New -> and copy and paste all scopes from the wiki to the OAuth scopes (comma-delimited) field
- NOTE - A common issue is that districts will only have scopes for one service account and not another. Errors involving 401 access denied, or invalid token are usually related to this
- Copy the client id for the created service account, and paste in the Client ID field
- Press authorize and repeat for any other service account
- Last step is to upload the service accounts into Genesis, one into the admin queue, and one into the gradebook queue in Setup -> Google -> Setup -> Service Accounts
- POTENTIAL ISSUES FROM SETUP
- A common issue is that districts will only have scopes for one service account and not another. Errors involving 401 access denied, or invalid token are usually related to this
- If the logs reference a file not being found, the Request queue( Setup -> Google -> Classroom Setup -> Request Queue) must be disabled and re-enabled
- If one queue works (all admin requests go through, but the requests from gradebook do not) this is caused by the service account for that queue. In this case, the gradebook service account would have to be checked that it is
- Added to the Google Admin Console
- All required scopes have been added
- Next is to enable the integration in Genesis.
- Setup -> Google -> Classroom Setup -> Settings
- Set the admin email
- Problems arise from this being set incorrectly; wrong email, typo, etc.
- Naming Scheme sets up the Class Name and Section field when we create google classrooms
- Enable Google Classroom Button
- Brings up a pop up where the user can select a gradebook they want to test add/removing a course and enrolling/removing a student for that course into Classroom
- This is where service account and admin email issues will most commonly surface
- Invite Students to Google Classroom instead of enrolling
- Sends invitations instead of directly enrolling students
- Set the admin email
- Setup -> Google -> Email Setup and Verification
- Allows users to set the Google Emails for teachers and students. This is required to successfully add teachers and students to classrooms
- Warns about users with duplicate email
- Shows students/staff with no email currently set
- Setup -> Google -> Classroom Setup -> Settings
- After everything is set and the integration is enabled, districts can start creating courses and rostering students
- Can be done from the Setup -> Google -> Classroom Admin -> Gradebooks page, gradebooks with valid teacher emails on the primary teacher can be selected.
- Under Sync Options select Create Classrooms and Invite Teachers and all selected gradebooks will have a google classroom created and the teacher invited
- After the Roster Selected Classrooms options can be selected, this will enroll students in classroom for selected gradebooks.
- NOTE - if the teacher has not accepted to teach the course, then the students will not receive any notification about enrollments until the teacher does so and the class is active.
- Can be done from the Setup -> Google -> Classroom Admin -> Gradebooks page, gradebooks with valid teacher emails on the primary teacher can be selected.
Common Setup Errors
"Error getting access token for service account: Connection reset" - Most commonly a firewall issue. The API call out to google at 142.251.(41).x.x over 443 tcp. It is possible the IP may differ so have your district's network admin perform a capture to diagnose.
"Error getting access token for service account: 401 Unauthorized POST " - Permission issue with a service account. Check the scopes on both service accounts and ensure they are BOTH added to the Domain Wide Delegation in the Manage Domain Wide Delegation page"
"Unable to see classroom in 'Sync Classroom' popup to link gradebook to" - If course was previously linked and then unlinked, it is most likely marked as a 'seen' course and is visible under 'Sync Classroom' within Google hub when clicking 'Seen Classrooms'
"Assignments not coming down from classroom in Google Hub" - If the logs show no errors this is most likely an issue with the alias of the course being mixed up with another. Using the 'Fix Aliases for Google Classrooms' option under 'Setup -> Google -> Classroom Admin -> Gradebooks' should resolve this
"Rostering/Creating classrooms from 'Setup → Google → Classroom Admin → Gradebooks' is taking a long time" - These calls may take a while, especially rostering, as there must be a request sent for each student and course. In addition, only 600 requests can be made in a minute, per service account. It is recommended that at least 2 service accounts are created for the ADMIN queue during this process to ensure that enough requests can go out.
"Teacher Denied a course in classroom, and now want to undo it" - They can either unlink it themselves and recreate it, or in the "Setup → Google → Classroom Admin → Gradebooks" select the classroom and use the "Reprovision selected Classrooms in Google" under Sync Options
Common Errors
- Assignments not coming down from classroom in Google Hub
- If the logs show no errors this is most likely an issue with the alias of the course being mixed up with another. Using the 'Fix Aliases for Google Classrooms' option under 'Setup -> Google -> Classroom Admin -> Gradebooks' should resolve this
- Rostering/Creating classrooms from 'Setup → Google → Classroom Admin → Gradebooks is taking a long time
- These calls may take a while, especially rostering, as there must be a request sent for each student and course. In addition, only 600 requests can be made in a minute, per service account. It is recommended that at least 2 service accounts are created for the ADMIN queue during this process to ensure that enough requests can go out.
- Teacher Denied a course in classroom, and now want to undo it
- They can either unlink it themselves and recreate it, or in the "Setup → Google → Classroom Admin → Gradebooks" select the classroom and use the "Reprovision selected Classrooms in Google" under Sync Options
- On the Live Check search screen you can search for the course, hit modify and change the state to provisioned or active from there
- Cannot find classroom for a teacher, that is in Google, in the Sync Classroom popup
- The best way to troubleshoot this issue is via the Setup -> Google -> Classroom Admin -> Live Check Classrooms screen, by searching the google email of the teacher you can see every classroom that they have access too, the state, and whether or not it is linked
- If the classroom has any state besides ACTIVE it will not appear in the sync popup, such as DENIED, PROVISIONED, or ARCHIVED
- If the classroom is already linked, it will not appear in the sync popup
- Student is enrolled in Classroom but not shown as such in Genesis
- The validate enrollments function from the Modify screen in Genesis for the classroom will allow you ensure that all students are enrolled, and that their current status reflects what is in classroom
Log Errors
These are viewed on Setup -> Google -> Classroom Admin -> Logs, they are highlighted in red and View Error must be clicked to view the message
- Error getting access token for service account: Connection reset"
- Most commonly a firewall issue. The API call out to google at 142.251.(41).x.x over 443 tcp. It is possible the IP may differ so have your district's network admin perform a capture to diagnose.
- Error getting access token for service account: 401 Unauthorized POST
- Permission issue with a service account. Check the scopes on both service accounts and ensure they are BOTH added to the Domain Wide Delegation in the Manage Domain Wide Delegation page
- Error getting access token for service account: 400 Bad Request POST https://oauth2.googleapis.com/token { "error": "invalid_grant", "error_description": "Invalid email or User ID" }
- The email set as admin for Setup -> Google -> Classroom Setup -> Settings - Admin Email field, is NOT a valid super admin email
- Unable to directly add user, please confirm their email is in the google workspace domain
- The email on that user is not is not within the districts workspace domain, so we do not have permission to add them directly to google classroom
- Entity already exists in the Google Classroom
- Student is already in classroom
- Trying to link a Gradebook to Google Classroom
- If this is returned it most likely means there is a Gradebook with this alias currently on it. To fix this go to Setup -> Google -> Classroom Admin -> Live Check Classrooms and in the Classroom Alias field type in the alias, including the p:. When the course appears, click modify, you should get a warning message, and the alias will have a delete icon next to it, once it is removed from here the course should be able to be synced.
- Additionally, you can select gradebooks from Setup -> Google -> Classroom Admin -> Gradebooks and under Sync Options pick Fix Aliases for Google Classrooms,
- Teacher may already be in course
- Teacher is most likely already in classroom
- Requested entity was not found- Very common error
- If trying to retrieve/add/delete anything involving a Classroom, this error most likely means that the Aliasof the course is invalid
- The course may have an invalid or missing alias. This can be checked by going to Setup -> Google -> Classroom Admin -> Live Check Classrooms, and selecting the Google Email for the teacher who is having this issue. Or if found in the logs clicking the magnifying glass icon to open that page with that classroom already searched for.
- Press the Modify icon to open the modify page. An alert will appear if the alias is the issue saying that it is causing sync problems.
- Add Alias to Classroom when pressed will create the alias for you. This only appears if there are no other aliases from Genesis found on the classroom
- The course may have an invalid or missing alias. This can be checked by going to Setup -> Google -> Classroom Admin -> Live Check Classrooms, and selecting the Google Email for the teacher who is having this issue. Or if found in the logs clicking the magnifying glass icon to open that page with that classroom already searched for.
- If trying to retrieve/add/delete anything involving a Classroom, this error most likely means that the Aliasof the course is invalid
- ClassroomDisabled The user is not permitted to access Classroom
- Most commonly this is due to Google Apps being disable for Super users, enabling google apps for super users should resolve this error.
Terms
- Alias - How we reference a Google Classroom from gradebook. Formatted as p: + courseid, a course with an id of 11719 should have an alias of p:11719
- Service Account - The credentials we use to access google classroom
- Super Admin Email - An email in the districts google workspace that is a Super Admin and has rights to everything
- Google Classroom - What the Genesis Gradebook is linked to, where teachers post assignments/grades
- Course/Class Work - These are the equivalent of assignments in Genesis and are linked to these
- Return Student Submission - Grades in Genesis
FAQ
Q: How are merged gradebooks handled?
A: Two or more Merged gradebooks will be connected to just ONE Google Classroom. The merged gradebooks will all point to the same Google Classroom, so any assignments and grades that are seen in the Classroom can be seen within the merged Gradebooks. Teachers can pull down assignments and grades for these as long as they have access within Google Classroom.
Q: Can Gradebooks be merged AFTER the Classrooms have been created already? What occurs?
A: Merging will take the Classroom of the 'main' course and attach it to the Gradebook being merged into it. Merging can be done with or without the Classrooms already being created. If the Classrooms have been created already for the separate Gradebooks, and then the Gradebooks get merged, the Gradebooks will be represented by only one Classroom.
For example, if you have created Classrooms for 'Gradebook A' and 'Gradebook B' which are then merged together, both Gradebooks will then point to the Classroom that 'Gradebook A' is connected with. It will invite the students from 'Classroom B' to 'Classroom A' as well as invite the teacher. Then, Google will archive the Classroom that was previously associated with 'Gradebook B' if it still exists.
Q: How do you reassign a Gradebook/Classroom to a different teacher who is taking over the section?
A: First, change the teacher within Scheduling > Sections. Then, manually update the 'owner' of the Classroom within Setup > Google > Classroom Admin > Gradebooks. Here is the full list of steps:
- Switch teacher on Scheduling > Sections > Modify Section
- Go to Setup > Google > Classroom Admin > Gradebooks
- Modify Gradebook
- Add teachers to classroom by filling "Add teacher email to classroom"
- After adding, click Plus Sign underneath "Owner"
- It switches "Owner" from one teacher to the other… (Classroom does not allow multiple 'owners')
- This also 'invites' the new teacher to the Classroom
Q: Are the class source IDs are created new every year or do they recycle old ones?
A: Since the aliases/sourced ids are linked to the teacher's gradebook they are created every year
Q: Can we filter out Classes such as study Halls, lunches, etc?
A: If these classes do not have an associated gradebook they will not be able to be linked to classroom. In cases where they do have gradebooks you select which courses are sent out to google.
Q: Can we control release dates for teacher Google Classrooms?
A: In the google admin pages you select which courses you want to create and send teachers for
Q: Can we control release dates for students being added to Google Classrooms
A: Similar to above, there is another option on the administrative google pages where you can select classes that you wish to roster in google classroom and have them rostered right then
Q: A teacher imported an existing Google Assignment into Genesis, and cannot modify it within Genesis
A: We are unable to modify assignments that originate from Google Classroom, due to this we lock down those fields for those assignments in Genesis
Q: When a teacher imports an assignment to Classroom, the due date and time do not make it over
A: One limitation of the Google Classroom API is that we are unable to create assignments with a due date and time that is before right now. If an assignment is due on 11/2/2022 at 11:00am and it is currently 11:01am, we will still create the assignment in Google, but cannot create it with that prior due date and time set
Q: What do I need to allow teachers to see the Google Classroom integration in their gradebooks?
A: Staff will need the securable location gradebook.google.sync added to their user. Teachers without this location will see no difference in their Gradebooks, and will have no access to the integration
Q: Do students need to accept the invite to join the Google Classroom created from Genesis?
A: No, the students do not need to do anything to join the class. There is no functionality to send invitations to students. They are automatically rostered into the Classroom if "Roster Students" is selected when creating.
Q: How soon after enrolling will students be able to see that they are In their Google Classrooms
A: Students will be able to see the google classrooms that were created from Genesis once the teacher accepts their invitation to teach the course
Q: I already have classrooms created manually, or from another product, can these be used in the integration?
A: Yes, however teachers will have to go into their gradebooks and manually link their gradebooks to the classroom
Q: What do I need to allow teachers to see the Google Classroom integration in their gradebooks?
A: Staff will need the securable location gradebook.google.sync added to their user. Teachers without this location will see no difference in their Gradebooks.
Q: What can I send to Google Classroom?
A: Gradebooks, Assignments, Students (rostering), and grades
Q: What are the Google Classroom equivalents to Genesis items
A:
Genesis | Google Classroom |
---|---|
Gradebook | Classes |
Assignments | Course/Class Work |
Grades | Returned Student Submissions |
Q: What do the google icons mean in Genesis?
A: This iconIndicates that the item in Genesis it is in the same row (Gradebooks, Assignments, Students, etc.) can be sent to Google Classroom, and clicking it will send that item over into Google
This iconIndicates that the item is currently in Google Classroom as far as Genesis knows, clicking it will bring you directly to the corresponding Google Classroom item
Q: I deleted something from Google/Genesis but it is still in the other service, why is that?
A: Currently we do not remove anything from Google Classroom from Genesis and require that if anything is deleted it must be removed from both platforms.
Q: I am trying to update a field on this assignment and it's not updating in Google
A: We cannot update or modify any assignments, or submissions for those assignments, if they were created in Google Classroom. We also cannot set a due date that is in the past
Q: What fields on an assignment are updated from Google?
A: Currently we update the following fields: assignment title, description, and max points.
Q: Can a student be enrolled in a different Genesis school than their enrolled class-section is housed? Can the student still be rostered in Google Classroom and will the grades still sync properly?
A: Yes.
Q: How do Quiz assignments work with the Classroom API
A: The Google Classroom API prevents us from creating Quiz assignments from Genesis. These must be created in Classroom as a quiz assignment and brought into Genesis.
Q: Do we need to have SSO enabled? If not, what is the difference between having it on or not? (SSO vs. the Classroom Integration Only option)
A: You do not need SSO enabled, SSO is just for logging into Genesis with a Google Workspace account. There is no difference to the Classroom Integration whether or not SSO is enabled.
Q: If you attach a document to the assignment in Genesis, will that sync back to Google drive?
A: The Google Classroom API does not allow us to upload documents to Google Drive, the attachment of these documents must be done in Classroom at the moment
Q: How are the gradebooks in Google Classroom impacted when I change the order of the teachers listed within a single class-section?
A: Changing the order (subsection #) of teachers on a class does not present any issues or changes to the class/gradebook within Google Classroom.
Q: Why are some gradebooks unselectable?
A: If none of the teachers on a gradebook have a Google Email set, then the classroom cannot be created. These rows are highlighted in red.
Q: Can co-teacher(s) be invited to Google Classroom?
A: If there are one or more teachers in a gradebook with a Google Email then it can be created in Google Classroom. However, any teachers without a valid Google Email will not be invited. These rows are highlighted in yellow.
Q: What do the different States represent?
A: Active - The gradebook is linked to a Google Classroom
Archived - The linked Classroom has been archived
Provisioned - The teacher has not yet 'accepted' the invitation to this Classroom
Q: Why can't teachers see gradebook information in Genesis?
A: Teachers must have the following securable location gradebook.google.sync
Q: Why aren't students being invited/enrolled?
- Their Google Email may not be setup correctly on Setup → Google → Email Setup and Verification → Check 'Google Email Address:' field on students from one of the following field. Students with no google email will be skipped and if their email is outside of your Google Workspace domain they will not be able to be added
- The owner has not accepted the course yet, students will not be enrolled unless the course is accepted, in other words, the 'STATE' field is no longer PROVISIONED, but ACTIVE
- Permission issue with Super Admin account. The admin account listed under "Workspace Admin Email (Workspace Super Admin User)" in Setup → Google → Admin → Google may not be setup as a Super Admin for "Google Workspace Administrator Seed Role".
Q: Why are students not receiving emails when they are invited to a course?
A: The Google Classroom API does not generate an email when students are enrolled/invited to a class
Q: I used the 'Populate 'Google Email Address:' field on users using the email field from' tool in setup but there are still teachers who are marked as not having an email, why?
A: That tool sets the google email on the User and the Teacher that represents them. If a teacher is not attached to a user we have no way of identifying their google email. You must make sure all users have a representative user and rerun the tool
Q: Once you successfully complete the 'test' and then "enable classroom" does anything happen automatically?
A: Once the connection is 'Enabled' nothing is created automatically, this simply turns on the ability to begin creating Classrooms from Genesis.
Q: Are we required to run the "test" for EACH school that will use Google Classroom?
A: No, it is only required to run the 'test' one time to enable the classroom sync, even though you may only see Gradebooks within your current selected school.
Q: Should we correct the "Naming Scheme" prior to running the 'test'?
A: You do not have to correct the 'naming scheme' options prior to running the test when enabling Google Classroom.
Q: Why are the Creation of Classrooms + Rostering of students done as two separate steps?
A: This allows teachers time to prepare and setup their Google Classroom prior to students gaining access.
Q: How do we avoid students seeing their schedules, since this is available in Google Classroom?
A: There is no control within Genesis to prevent students from logging into Google or accessing specific Classrooms. As soon as a teacher 'accepts' the classroom, any students who are already rostered will gain access to the Classroom.
Features
Feature | Screen | Button Name | Things to Note |
---|---|---|---|
Create Google Classrooms based on a Genesis Gradebook | Gradebook → Home → Summary | ||
Create Classwork in Google from a Genesis Assignment | Gradebook → Assignments → Assignment List Gradebook → Assignments → Add Assignment | Assignments cannot be sent to Google Classroom if they have a due date before today | |
Update Classwork in Google from a Genesis Assignment | Gradebook → Assignments → Assignment List Gradebook → Assignments → Modify Assignment | Save Screen/Assignment | Genesis cannot update any Classwork that was created in Google Classroom |
Roster/Remove Students into Google Classroom | Gradebook → Rosters | ||
Import Grades from Google Student Submissions | Gradebook → Gradebook | Get Grades from Google | Genesis will only bring in grades that are returned in Google Classroom. You can also overwrite grades from Google. Bringing in modified grades will update them in Google, as long as the assignment originated from Genesis. |
Update Grades in Google from Genesis | Gradebook → Gradebook | Save Grades | If the assignment was created in Genesis and sent to Google, this will update those grades to reflect the current values in Genesis |
Google Hub
Gradebook → Google
This screen is a central hub of everything you can do with Google Classroom along with some additional features not on other screens
Feature | Button Name | Things to Note |
---|---|---|
Send Gradebook to Google Classroom | ||
Unlink Gradebook from Google Classroom | You can only unlink a Gradebook from Google Classroom if there are no linked assignments in that Gradebook | |
Create Classwork in Google from a Genesis Assignment | Assignments cannot be sent to Google Classroom if they have a due date before today | |
Import Classwork from Google to create a Genesis Assignment | View Unsynced Assignments from Google Classrooms | Will also bring in returned Student Submissions from Google and populate Gradebook with them |
Import Grades for assignments in a specific Gradebook | Assignments without grades will automatically be checked off. If you have assignments with grades they will be shown, but will have to selected manually because those grades will be overwritten by those in Google. | |
Update all Google Information for a specific gradebook (assignments + find grades) | All assignments associated with that Gradebook will be updated from Google. Grades will NOT be brought in, the assignment will inform you though if you have outstanding grades in Google that have yet to be brought in | |
Update Google information for a specific assignments (assignment fields + find grades) | ||
Unlink assignment from Google Classroom | This will not delete the corresponding Class work in Google Classroom. Only stop changes in Genesis from going to Google. Assignments cannot be relinked to Google Classroom. |
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article