Detectar si un streamer está en directo (API Twitch Helix)

ThommyGames06 Mensajes publicados 5 Estado Miembro -  
jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   -
Bonjour, voici la traduction française de votre texte en espagnol, en conservant le formatage HTML tel quel: Hola,

Estoy tratando de hacer un código que pueda detectar cuando un streamer está en línea en Twitch gracias a la API de Twitch "HELIX". Estoy atascado y no logro avanzar a pesar de mis consultas en numerosos artículos publicados por otras personas.

Aquí está en lo que estoy
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 me guider... ;)

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

3 respuestas

  1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     
    Hola,
    Estás bloqueado .. ¿qué significa?
    ¿En qué exactamente estás bloqueado?
    ¿Has mirado en la consola de JavaScript de tu navegador (para eso te recomiendo encarecidamente hacerlo con Firefox) el resultado de tu llamada ajax?
    También sería bueno añadir algunos console.log en tu código para ver qué valen tus distintas variables...
    Y por supuesto.. has reemplazado el CLIENT-ID por tu identificador (que debes obtener en el sitio de la API)

    Y noto también que parece que estás usando Jquery en tu página ..... entonces sería más sencillo usar la función ajax de jquery en lugar de hacer un XMLHttpRequest..

    --
    Cordialement,
    Jordane
    0
  2. ThommyGames06 Mensajes publicados 5 Estado Miembro
     
    <bold>Gracias por responderme Jordane,</bold>

    Cuando digo "Estoy bloqueado", es decir, que mi código no funciona. He seguido tus consejos y esto es en lo que me encuentro:

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


    La consola devuelve el error 401 que es:
    {error: "Unauthorized", status: 401, message: "OAuth token is missing"}


    ¿Qué significa eso?

    Gracias,
    Thommy ;)
    0
    1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
       
      Significa que no has enviado el token de autenticación
       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("El stream está inactivo"); console.log(data["stream"]); } else { $("#info").html("El stream está activo"); console.log(data["stream"]); } } }); 

      Documento a leer en complemento:
      https://dev.twitch.tv/docs/authentication/getting-tokens-oauth
      0
  3. ThommyGames06 Mensajes publicados 5 Estado Miembro
     
    He enviado una solicitud para obtener mi token (gracias a la documentación) pero no devuelve nada (perdón por ser tan novato en el mundo de la 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: He obtenido el "secreto de cliente" (client secret) en la consola de mi aplicación de Twitch al hacer clic en nuevo secreto.

    ¡De nuevo gracias!
    Thommy ;)
    0
    1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
       
      Una vez obtenido el token .. hay que usarlo en tus scripts
      Reemplazando el 'TOKEN' del texto 'OAuth TOKEN' .. por .. bueno.. tu token.
      0