TMIJS API TWITCH (Command !setGame ou !setTitle)


ok donc ce que j’ai fais est bien?

No

You wrote the access token to your tokens.json file
Then overwrote it with the refresh token

So you only store the referesh token, and it wasn’t JSON that you wrote to a file called .json

ah oui, je me suis trompé pour le newRefreshToken, j’ai mis deux fois access_token mais j’ai pas compris pour les autres erreurs

ça doit être bon normalement là image

par contre je pense que le statusCode n’est pas le bon

OKK, j’ai réussis mais le problème là c’est que le writeFile ne marche pas… il enregistre pas le nouveau…

if (res.statusCode == 200) {
    fs.writeFile('./tokens.json', body);
    const res = JSON.parse(body);
    // other stuff
} 

Seems moe like what you want

bah pas totalement, si tu veux dans mon fichier de config, j’ai pas mal de truc dedans notamment le token pour mon bot discord etc… et quand je fais un writeFile ça enlève tout ce qui a dans le config pour laisser uniquement ce que j’ai réécris or moi je veux simplement remplacer la valeur d’une clé par une nouvelle valeur image

Then you need to load the data from the tokens file
Merge in the things you want to change
Then write the file back again

In your code you are nailing the ENTIRE file contents with the refresh token only

So something like (incomplete/semi pseudo codey)

if (res.statusCode == 200) {
    const res = JSON.parse(body);

    // load existing data
    let tokens = fs.readFile('./tokens.json');
    // override access token
    tokens.twitch.tokens.access_token = res.access_token;
    // override refresh token
    tokens.twitch.tokens.refresh_token = res.refresh_token;
    // write it all back to the file
    fs.writeFile('./tokens.json', JSON.stringify(tokens,null,4));

    // other stuff
} 

AHHH okok je comprends mieux

Ah bah j’ai cette erreur là image

Then modify the code to fix the problem.

I can only do so much from screenshots of code.
And I made an assumption about whats in tokens.json based on your other screenshot.

So modify what I wrote to match whats actually in your tokens file

bah le soucis ici comme envoyer au-dessus, dans mon fichier config c’est bien twitch.tokens.access_token mais je ne comprends pas pourquoi ça marche pas parce que juste en dessous, j’utilise le même chemin et il fonctionne image

ok alors il fallait juste parse le readFile, je vais attendre demain si la commande fonctionne même après que l’accessToken est expiré pour voir si il se regénère bien

ok donc je reviens vers toi après que l’accessToken est expiré. J’ai fais des console.log pour voir ce qui n’allait pas et enfaite, const accessToken = Config.twitch.tokens.access_token; retourne toujours l’ancien token et le nouveau uniquement au redémarrage du bot

Ok donc j’ai essayé de lire le fichier avec la variable tokens créer juste avant et en mettant des console.log de accessToken, le token se change bien, c’est bon ! image

Alors, j’aurais juste une petite question, le refreshToken, au bout d’un certain temps (expires_in), il se reinitialise? Si c’est le cas, comment je fais pour l’avoir? Étant donné que je l’utilise POUR faire la requête pour actualiser l’accessToken.

When you use the refresh token to get a new access token.

Then the current refresh token is returned with the response

Currently a refresh token itself doesn’t expire

AHHH non mb, enfaite, c’est simplement le !setgame qui ne fonctionne pas.mais je ne sais pas comment faire pour récupérer l’accessToken pour le gameId, est-ce que je dois refaire une méthode post vous m’avez indiquez au-dessus?


image

The same token you use for updating the channel, you can use to get the gameID

so you probably want to

  • refresh token to get new access token
  • game name to game id
  • update channel with new game id

You have a “get channel information” call in there for some reason?