Détecter si un streamer est en live (API Twitch Helix)

ThommyGames06 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'essaie de faire un code pouvant détecter quand un streamer est en ligne sur Twitch grace à l'API Twitch "HELIX". Je suis bloqué et je n'arrive pas malgré mes consultations sur de nombreux articles postés par d'autres personnes.

Voici où j'en suis
var xhr = new XMLHttpRequest();

xhr.open("GET", "https://api.twitch.tv/helix/streams?user_login=STREAMER", true);
xhr.setRequestHeader('Client-ID', 'CLIENT ID');
xhr.onreadystatechange = function(){
 if(xhr.readyState == 4){
  var data = JSON.parse(xhr.responseText);
  if(data["stream"] == null){
   $("#statut").html("Le stream est inactif")
  }else{
   $("#statut").html("Le stream est actif")
  }
 }
}
xhr.send();


Merci de m'aiguiller... ;)

EDIT :: Correction des balises de code ( ajout du LANGAGE pour avoir la coloration syntaxique )

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
Tu es bloqué .. c'est à dire ?
Sur quoi bloques tu exactement ?
As tu regardé dans la console javascript de ton navigateur ( pour ça je te conseille fortement de le faire sous firefox ) le résultat de ton appel ajax ?
Il serait bien également d'ajouter quelques console.log dans ton code pour voir ce que valent tes différentes variables...
Et bien entendu.. tu as remplacé le CLIENT-ID par ton identifiant (que tu dois obtenir sur le site de l'api )

Je note également que tu sembles utiliser Jquery dans ta page ..... il serait donc plus simple d'utiliser la fonction ajax de jquery au lieu de faire du XMLHttpRequest..

0
ThommyGames06 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de m'avoir répondu Jordane,

Quand je dis "Je suis bloqué", c'est-à-dire que mon code ne fonctionne pas. J'ai suivis vos conseils et voilà où j'en suis :

$.ajax({
    url: "https://api.twitch.tv/helix/streams?user_login=STREAMER",
    dataType: 'json',
    headers: {
      'Client-ID': 'Mon Client ID'
    },
    success: function(data){
      console.log(data)
      if (data["stream"] == null)
      {
        $("#info").html("Le stream est inactif");
        console.log(data["stream"]);
      } else {
        $("#info").html("Le stream est actif");
        console.log(data["stream"]);
      }
    }
});


La console retourne l'erreur 401 qui est :
{error: "Unauthorized", status: 401, message: "OAuth token is missing"}


Qu'est-ce que cela signifie ?

Merci,
Thommy ;)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Cela signifie que tu n'a pas envoyé le token d'authentification

 headers: {
   $.ajax({
    url: "https://api.twitch.tv/helix/streams?user_login=STREAMER",
    dataType: 'json',
      'Client-ID': '<your client id>',
      'Authorization': 'OAuth <your oauth token with channel_read scope>',
    success: function(data){
      console.log(data)
      if (data["stream"] == null)
      {
        $("#info").html("Le stream est inactif");
        console.log(data["stream"]);
      } else {
        $("#info").html("Le stream est actif");
        console.log(data["stream"]);
      }
    }
});


Documentation à lire en complément :
https://dev.twitch.tv/docs/authentication/getting-tokens-oauth
0
ThommyGames06 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai envoyé une requête pour obtenir mon jeton (grâce à la documentation) mais cela ne retourne rien (désolé d'être si novice dans le monde de l'API ).

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://id.twitch.tv/oauth2/token?client_id=MON CLIENT ID&client_secret=MON CLIENT SECRET&grant_type=client_credentials", 
true);
console.log(xhr.responseText);
xhr.send;

   $.ajax({
    url: "https://api.twitch.tv/helix/streams?user_login=STREAMER",
    dataType: 'json',
     headers: {
      'Client-ID': 'CLIENT ID',
      'Authorization': 'OAuth TOKEN'},
    success: function(data){
      console.log(data)
      if (data["stream"] == null)
      {
        $("#info").html("Le stream est inactif");
        console.log(data["stream"]);
      } else {
        $("#info").html("Le stream est actif");
        console.log(data["stream"]);
      }
    }
});


P.S: J'ai obtenu le "secret du client" (client secret) sur la console de mon application Twitch en ayant cliquer sur nouveau secret.

Encore merci,
Thommy ;)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Une fois obtenu le token .. il faut l'utiliser dans tes scripts
En remplaçant le 'TOKEN' du texte 'OAuth TOKEN' .. par .. ben.. ton token.
0