Faculty at my institution have been asking for a way to record attendance for Zoom video lectures within a Canvas assignment as attendance makes up a very small percentage of final grades. There is no inbuilt functionality to do this within Canvas so I created a python script that takes a Zoom meeting report, creates a new assignment within Canvas and gives a points score to all attendees.
Caveat: I am not a proficient coder and the script is utilized at the users own risk. We are considering developing it into a production application with GUI or built into Canvas, but have no near term plans to do so - purely a proof of concept at this stage. That being said, I would still appreciate any feedback or information on any modifications you make to it.
The script uses the Canvas API to create and grade a new assignment. An access token is required to use the API and this will provide the same level of access as your Canvas account.
In Canvas, click AccountthenSettings
Scroll down to Approved Integrations and at the bottom of the integrations list, click + New Access Token
Provide a purpose and expiry date (N.B. Use <2wks to minimize risk. Do not leave the date blank!) and clickGenerate Token
Copy the access token (When you close this window, you will not be able to view the token again)
Open the python script in your favorite text editor or IDE
Near the end of the script, replace <YOUR API KEY HERE> with your copied access token
A few lines further down, replace <YOUR CANVAS URL> with the URL for your Canvas instance
Save the python script
The Python script does three things: (1) create a new assignment, (2) take the provided Zoom meeting report and extract attendees, (3) add a grade to the assignment for students that attended the Zoom meeting
To use the script
On your Canvas site, go to the Zoom page and click on Previous Meetings
Click Reportnext to the meeting you want to record attendance for
Click Export as CSV Fileand save to your computer
Run the Python script. You will be prompted for four things (Variable input does slow down script so you could hard code the course ID and points score) :
Course ID (e.g. 3157 (the four digit number in a URL for any page on the course site))
Name for new assignment (e.g. Attendance 7/27)
The Zoom report file (Browse for the saved CSV file)
Point score for present students (e.g. 1)
If you now navigate to the Assignments section of the Canvas site, you will see a new assignment created with the name provided. In the Grades section (if visible to you) this assignment will be graded for all students that attended the Zoom meeting.