Total sum viewers for multiple users

Something like

<?php

$cho = curl_init('https://id.twitch.tv/oauth2/token');
curl_setopt($cho, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cho, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cho, CURLOPT_POST, 1);
$fields = array(
    'client_id' => 'c533u8ntdp29h42xxzwfe0pf5v66dm',
    'client_secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'grant_type' => 'client_credentials'
);
curl_setopt($cho, CURLOPT_POSTFIELDS, $fields);
$output = curl_exec($cho);
$info = curl_getinfo($cho);

if ($info['http_code'] == 200) {
    $oauth = json_decode($output, true);
    $token = $oauth['access_token'];

    // inizio a chiamare le API 
    $total = 0;

    foreach($channels as $chans){
        if (count($chans) > 0) {
        $callAPI = implode('&user_login=', $chans);
        $url="https://api.twitch.tv/helix/streams?user_login=" . $callAPI;
        $ch = curl_init();
      
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Client-ID: c533u8ntdp29h42xxzwfe0pf5v66dm',
            'Authorization: Bearer '.$token
        ));
        
        $result = curl_exec($ch);
        $i = curl_getinfo($ch);
        curl_close($ch);

        // preparo le stamp per le API
        if ($i['http_code'] == 200) {
            $str = json_decode($result, true);

            foreach ($str['data'] as $live_chan){
                $total += $live_chan['viewer_count'];
            }
            // do stuff with $str has chnanels
        } else {
            // non 200 do somethign with the error
            // do stuff with $str has error message
        }

        // fine chiamata API
    }

    echo $total;
}

But most of this is a full “I wouldn’t of done it like this”, but works as a rough example.

You don’t want to generate an app access token every time you should reuse one you already have if it’s still valid