Email not returned with GetUsers

the URL you copy pasted was

https://id.twitch.tv/oauth2/authorize?client_id=mk1f6m29hrqzdu8hwqfydg5r6lrf3l&redirect_uri=ht

I provided my suggested fix, you need to urlencode your redirect URI

So your $params above becomes something like

$params = array(
    'client_id' => $this->client_id,
    'redirect_uri' => urlencode($redirectUri),
    'response_type' => 'code',
    'scope' => 'user:read:email',
    'state' => $_SESSION['twitch_stage']
);