ncstate-delta / moodle-mod_zoom

Moodle plugin for Zoom meeting
https://moodle.org/plugins/mod_zoom
61 stars 108 forks source link

Additional log items #588

Open netsalesbg-ltd opened 5 months ago

netsalesbg-ltd commented 5 months ago

Hello there,

Can you add additional items for course reports?

I presume it will be easy since there is grading based on meeting duration. Currently there is only a log "clicked join meeting button" that can pass for meeting join, but it is not 100% for sure the student has joined.

jrchamp commented 5 months ago

Hi @netsalesbg-ltd,

If you are referring to the Moodle log, we are able to reliably log the "Clicked join meeting button" because it is a Moodle event. The Zoom events are imported after the fact, so the timing isn't going to match up. We do have the participation report within this plugin that shows the Zoom events that we were able to import. Unfortunately, unless the student is logged in to the matching Zoom account (by email address as part of a multi-user Zoom account), we can't be 100% sure that it's the same person. The grading based on meeting duration makes a best guess based on the data that is available; ultimately, the instructor has to manually address any outliers/unmatched data.

With that context in mind, does this change your request?

netsalesbg-ltd commented 5 months ago

No, I still have the same request.

I am working on a solution on my own using webhooks. I have added a setting for secret token from zoom api and I am handling webhook events successfully.

My current problem is of identifying which moodle user the event belonged to. I saw zoom has tracking fields api but I am not familiar with it. My thinking is that we make personal join url from that button and adding a tracking field to the user. Then zoom will send those fields using the webhooks (I am not sure if it does that). And using them we can identify which moodle user is doing the event.

jrchamp commented 5 months ago

Your webhook plan makes sense. If only one webhook endpoint is allowed for each Server-to-Server OAuth app, then it would mean that each Moodle install would need it's own Server-to-Server OAuth app.

Identifying which Moodle user the event belongs to is indeed the challenge that I highlighted before. You need a reliable unique identifier to guarantee the match, otherwise you can only make best guesses based on names matching the Moodle account.

My understanding of the tracking fields is that they add metadata to the Zoom meeting, not to the individual meeting participants. It is possible that you could try to aggregate participant data, but I'm not sure that you would be better able to identify the participants and there may be a rather low limit on the tracking field's maximum data length.