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

ThommyGames06 Messages postés 5 Statut Membre -  
jordane45 Messages postés 30427 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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. ThommyGames06 Messages postés 5 Statut Membre
     
    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
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
  3. ThommyGames06 Messages postés 5 Statut Membre
     
    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
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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