This is only the case if the OAUTH is invalid. Twitch will automatically determine the proper client_id to use when you pass an OAUTH through an endpoint that doesn’t strictly require OAUTH.
The two latter examples also suggest the same thing - the problem seems to be either how you are getting the OAUTH or it may be a system issue - unfortunately my knowledge of PHP is limited and as for cURL, non-existent. I found this stackoverflow post, hopefully this might help (if not, sorry!).
Just a thought, should your ‘scope’ be written as: 'scope' => 'user_read', 'chat_login', instead of how you have it? Just throwing around a thought in hopes it helps ![]()