New api break my old code

Hi, today my code stop working.
I think that require new oauth method, how i can change this?

   $all_channels = [];
    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'
  
));

$result = curl_exec($ch);
$i = curl_getinfo($ch);
curl_close($ch);

// preparo le stamp per le API
$str = json_decode($result, true);
if ($i['http_code'] == 200) {
    // play print API
    foreach ($str['data'] as $live_chan){
        $all_channels[] = $live_chan;
    }
    // do stuff with $str has chnanels
} else {
    // non 200 do somethign with the error
    // do stuff with $str has error message
}
// fine chiamata API
}
}

has a PHP example that’ll help you

should i add
'Authorization: OAuth <access token>'
on curl httpheader array?

if that’s okay how i generate OAuth token?

No it’s Bearer for Helix not “OAuth”

I’ve make this but don’t work.

$cho = curl_init();
    curl_setopt($cho, CURLOPT_URL, 'https://api.twitch.tv/kraken/oauth2/token');
    curl_setopt($cho, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($cho, CURLOPT_POST, 1);
    curl_setopt($cho, CURLOPT_POSTFIELDS, http_build_query([
        'client_id' => 'c533u8ntdp29h42xxzwfe0pf5v66dm',
        'client_secret' => 'REMOVED',
        'grant_type' => 'client_credentials',
        'code' => $_GET['code']
    ]));
    $output = curl_exec($cho);
    curl_close($cho);
    $oauth = json_decode($output, true);
    // start call API
    $all_channels = [];
    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(
            'Authorization: Bearer ' $oauth ''
            'Client-ID: c533u8ntdp29h42xxzwfe0pf5v66dm'
        ));
        $result = curl_exec($ch);
        $i = curl_getinfo($ch);
        curl_close($ch);

Wrong URL

DO NOT LEAK YOUR CLIENT SECRET IT IS A PASSWORD

Please refer to the docs.

Now i changed my code, but not work, i’m going crazy ç_ç

$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' => 'xxxxxxxxxxx',
    'grant_type' => 'client_credentials',
    'token_type' => 'bearer',
    'state' => $_GET['state']
);
curl_setopt($cho, CURLOPT_POSTFIELDS, $fields);
$output = curl_exec($cho);
$info = curl_getinfo($cho); 

print_r($info);

$oauth = json_decode($output, true);
$token = $oauth['access_token'];

print_r($token);

// start call API

$all_channels = [];
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);

    // stampo API
    $str = json_decode($result, true);

OPS sorry

Now work! I’m stupid and i have not updated php.ini and restarted apache2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.