Twitch OAUTH2 implementation: "Client ID is missing"

I think my code is failing somewhere between step 4 and step 5 - I’m not seeing the access token in my URL after I click authorize and right before it redirects back to my own app, as below:

https://id.twitch.tv/oauth2/authorize?client_id=<client_id>&redirect_uri=<redirect_uri>&response_type=code&scope=user%3Aread%3Aemail&state=<state>

I’ve got https://id.twitch.tv/oauth2/token in my code - but not https://id.twitch.tv/oauth2/validate or https://id.twitch.tv/oauth2/revoke if those are required?

At the callback is where I also receive a 302 err - my GET headers include only code, scope and state