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
}
}
This is generating a LOT of tokens.
You should generate a token, and use it till it’s close to expirartion, and then generate a new one, if you can.
Thats standard, it’ll take 3-5 minutes (or quicker) for a stream to show as live in the API
You may also be interested in
https://dev.twitch.tv/docs/api/webhooks-guide
So twitch can tell you when a stream is live rather than long polling
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?
Emanuele_Capizzi:
‘Authorization: OAuth ’
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
Emanuele_Capizzi:
‘client_secret’ => ’
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
system
Closed
June 3, 2020, 8:10pm
9
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.