Getting chat channel users and transcripts

Format Your New Topic as Follows:

API Endpoint(s) and/or Zoom API Event(s)
/chat/channels/:channelId/members?page_size=50

Description
I am recieving the follow error : “message”: “No permission to access the channel members.”
according to the API for this call, I need scope for Scopes: chat_channel:read which I have. But I continue to get an error saying I dont have permission. Is there another scope or some kind of security I need for this?

Error?
“message”: “No permission to access the channel members.”

Hey @DarylH
Thanks for reaching out to us!
Could you please make sure that you have all chat permissions enabled in the Web portal?
Under the admin tab > account management > account settings > team chat

1 Like

we do NOT have it enabled for the account only specific groups

Here are a couple of screenshots, do these help?
image

Here is my permissions by role :
image

thanks for your help so far!

Hey @DarylH
I am trying to replicate what you are seeing with my account, but I can not. So I have another question, what kind of app are you using? are you working with the Server to Server App or Team Chat App??
If it is a team chat app is it a user level?

1 Like

it is a server to Server-to-Server OAuth. Account-Level

here is the scopes that return from my Postman call for getting the 0AuthAccess Token:
We tried adding extra stuff just to try to get it to work, but the API says all I should need is chat_channel:read:admin

"scope": "user:read:admin imgroup:read:admin meeting:read:admin group:master group:read:admin imgroup:master imchat:read:admin chat_channel:read:admin user:master chat_message:read:admin contact_group:read:admin"

it appears I can get the members of the chat channel i’m in, but not the ones i’m personally not in, but since i have admin, shouldnt I be able to?

Another option to get trascripts could be to just get all the chat sessions, but because we are only trying to archive certain individuals, it would be very helpful to just check each sessions’ users before bothering to archive the transcript. is this possible? something like /report/chat/sessions/{{sessionId}}/members?

HI @DarylH
Ah, I see…
So you can actually get members of channels that you are in but not other channels?
We have a couple or Chat report endpoints:
Get chat sessions reports and Get chat messages reports

But I am thinking that if you only want to archive the transcripts for a certain user, maybe you can call the List a users chat sessions endpoint?

1 Like

Unfortunatly, I don’t think List a user’s chat chat sessions would be efficient because there could be thousands of users who are “tagged” as needing to be archived who dont actually use zoom chat. So I’d have to make thousands of calls daily when a great majority of them would return nothing.

My ideal happy path would be to get All Chat Sessions (using the above mentioned “Get Chat sessions report”), then get all the users for each chat session (this is the part I’m unable to find a good call to do), and if that session contains a user that needs to be archived, then we get the actual transcript (using “Get Chat Messages Reports”)

I COULD get every single chat message via Get Chat Messages Reports and traverse through all the “sender” variables in the JSON, but that seems less efficient too since many sessions are probably not going to qualify for archving.

Elisa, I appreciate your help thus far!

You are right, there would be a lot of information @DarylH
I am not just thinking if you have been able to work on the initial error you were having (I do not know if got distracted from the original problem :sweat_smile:)

thats true :slight_smile:
I think the original issue is the same though, being unable to get the members of a channel/session that I am not in. Is that possible? And without knowing who is in it? it does seem that this call works, but I’d have to already know someone who is in it. /chat/users/{userId}/channels/{channelId}

Right! sorry about that @DarylH
let me create different channels and add people to my test account so I can test this properly

1 Like

thank you for your continued help

Hi @DarylH
I was able to replicate this issue with my test account, even using a Server to Server OAuth app that is an account-level app when I tried to call the chat channel users endpoint, I got a 200 No permission to access the channel members.
Let me take a look into my account settings and see if there is any settings we can change to access other channels

this a great news, well, great that you found it :slight_smile:
Thank you for your help!

please continue to let me know what you find, I appreciate your help.

Ideally the call would look like something based off this {{baseUrl}}/chat/channels/:channelId/members?page_size=20
but with session ID would be better, this would then work from 1:1 and every other type, so the call would maybe look something like this…

{{baseUrl}}/chat/sessions/{SESSION_ID}/members?page_size=20

I have created an internal ticket with our Engineering team to understand this API behavior
(ZSEE-91917 for reference) I will update you as soon as I have more information :slight_smile:

2 Likes

Hello @elisa.zoom , just following up on this to see if we have any progress

Hi @DarylH
Thanks for your patience here.
I am still working with our Engineering team on this. But I will update you shortly