Join_token/local_recording "Invalid access token, does not contain permissions:[User:Read]"

endpoint : GET /meetings/{meetingId}/jointoken/local_recording

Description
I have a user-managed general app with scopes [meeting_token:read:local_recording, meeting:read, user:read, user_zak:read]. If I allow the app, I’m able to generate a local recording token for hosted meetings.

But I’m not always able to generate local recording tokens for meetings the user is invited to.
If I don’t allow the “shared access permissions”, I get error 403 “Authenticated user has not permitted access to the targeted resource.”
If I do give the “shared access permissions”, with an admin user I am able to generate a recording token for invited meetings. But with a member, I get error “Invalid access token, does not contain permissions:[User:Read]”

Does it make sense that I need the “shared access permissions” ? Why do I get this error despite having the user:read scope?

Hey @bruno.degomme ,

Happy to chime in here! We run meeting bots at scale and ran into many similar questions when implementing a Zoom OAuth integration for join tokens for local recording.

Does it make sense that I need the “shared access permissions” ? Why do I get this error despite having the user:read scope?

This is expected behavior. Since you’re using a user-managed app, OAuth permissions are scoped to that specific user. So by default, you can only get local recording tokens for users that have authenticated via OAuth.

The nuance here is that even if an external user has delegated access to another user connected via OAuth via shared access permissions, they may not have the necessary permissions in their Zoom account in order to do this. Based on the description of the issue, this seems likely to be the case.

I’m not familiar with the specific permission/setting that would be causing this, but I suspect it’s either:

I recommend checking these two things to see if this is what is causing the admin to succeed but not regular users.

Meeting Bot Alternative

Another alternative is to use Recall.ai for your meeting bots instead. It’s a simple 3rd party API that lets you use meeting bots to get raw audio/video from meetings without you needing to spend months to build, scale and maintain these bots.

Let me know if you have any questions!

Hi Amanda,
Thank you!

by default, you can only get local recording tokens for users that have authenticated via OAuth.

=> can you only get local recording tokens for meetings owned by the authenticated user? Or also meetings to which the authenticated user was invited? I thought it was the latter. But if not, indeed it’s likely a permission issue.