When making a call to the “/helix/chat/chatters” endpoint to fetch the viewer list it requires broadcaster or moderator permissions with the “moderator:read:chatters” scope set in the token you pass and the token can match either the userid of the broadcaster or a moderator of the broadcasters channel.
Why is this not the case for fetching a list of moderators from " /helix/moderation/moderators" or VIP users from " /helix/channels/vips" as well? It makes sense restricting the add/remove calls from these endpoints to a token bound to the userid of the broadcaster but how does restricting the read call to only the broadcaster userid make sense?
You can fetch the viewer list with moderator permissions but you cannot fetch the list of moderators or VIP users. The viewer list returned by the “chatters” endpoint does not differentiate between which users have which “role” in the chatroom and the only way to determine which users are moderator, VIP’s, and standard users is to have a token generated by the broadcaster themself - a token that will need to be re-authorized from time to time.
“The ID in the broadcaster_id query parameter must match the user ID in the access token.”
Why is this a good idea for simply querying a user list to determine which user has which “role” in the chatroom? How do you determine a users role without a token generated by the broadcaster with the highest level of privilege? Could a “role” enum value be added to the user struct of the main “chatters” endpoint result or ? …