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 Account then Settings
- 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 click Generate 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 Report next to the meeting you want to record attendance for
- Click Export as CSV File and 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.