we are trying to hook the Zoom API into our productivity app to fetch information about past meetings. We do not want to create or modify meetings, but only get a history of video/audio/meeting calls.
A user using our app will connect with their Zoom Account via OAuth. For this we created a
“User managed app” in the Zoom Marketplace. Now we are trying to fetch the data for the connected user, but we fail identifying the correct endpoints.
What we need:
For the connected user (and only that user) we want to fetch – for a specific day – all concluded/closed/done video/audio chats. We do not care if it was a scheduled meeting or an ad-hoc call with one or multiple users. All we need is a list of IDs that identify the meetings so we can get the details like, duration, participants, type, …
We tried the “Meetings API” first, but listing a users meetings resulted in an empty list. Probably because we do not have any meetings scheduled. But is seems it did not return past meetings or past direct video calls.
So we looked for another endpoint and found the Report API’s Get Meetings call, but that needs “report:read:admin” which seems not to be available with an “User managed app”.
The same seems to be true for the Dashboard Calls where we would need “dashboard_meetings:read:admin” with the added limitations, that is only available to Paid Accounts.
Is there no call where a user can retrieve their own history with an user managed OAuth App?
You are correct to assume the Reports and Dashboard endpoints have the data you need, however they are only for Account Level Apps.
I would suggest using the Participant Joined and Left Webhooks to get the data you need (they do require a pro or above plan). The benefits of using Webhooks, is you get the data in realtime, without using any rate limits.
Or, you could create an Account Level OAuth app, and get access to the reports and dashboard data for all the users on the Zoom account.
We have an App that a user installs on their computer and the user wants to see what they worked on on a specific day including calendar events (meetings) and calls (including zoom video calls).
We are not talking about a cloud solution or a managed centralised app controlled by an administrator.
We talk about user level data, so we need user level access to the data.
Webhooks have a huge disadvantage: When our tracking app (installed on a personal machine) would be switched off (but the computer still active) then the user would not receive the data. So we still would need a passive way to get eventually missed past calls. Could we even handle this kind of webhook management?
Webhooks would not deliver the necessary accuracy.
The Issue with the Account level Auth App would be, that not every user would be able to get their own data, but the admin would need to get it for them. That is also not a possibility – unless each user would be an administrator.
Why is there no endpoint to get my personal past meetings?
You can get the UUID from the Get Meetings endpoints
This is only true for scheduled meeting not “instant meetings”
Or the Meeting Ended Webhook
So I looked into the Webhooks and it seems that they will not reliably give us all informations we need.
First of all the Webhook might fail/not be triggered resulting in a loss of informations. Secondly there seems to be an issue with get all informations for all participants.
Little background: we are not only interested in meetings the user is hosting, but also participating in. And when we talk about “meetings” it is not only about scheduled ones, but also “direct calls” (i think that is what die API calls “instant meeting”)
So we cannot utilise the meeting.ended Webhook, but we would need to use the participant joined/left webhooks to determine exactly when a participant was part of a meeting – which might be not the whole time.
Looking into the meeting.participant_left Webhook it states:
The meeting host must be a user in your account or a user in any other accounts that have installed your webhook-enabled app.
So if a users of ours joins a meeting of another user not (yet) having installed our webhook-enabled app, we will not get notified, resulting in a loss of informations.
It looks like there is no reliable way to know if a user was participant of any kind of meeting and the start/end time of their participation in any meeting.
so do I understand correctly, there is absolutely no way to get informations on all calls/video chats only on the ones I personally hosted or someone of my account hosted. There is no way to get any information if I participated in a call with let’s say a client of our company or with any other person outside the company?