API Riot Games

Unexpected token ,

Le problème exposé dans ce sujet a été résolu.

Bonjour, Comme indiqué dans le titre, j’ai une erreur, l’élément déclencheur est une "," d’après l’erreur.

Voici mon code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
const riot = require('riot-games-api-nodejs');
var RiotApi = require('riot-api');
riot.developerKey = ''


api.getLeagues({
    'region': 'NA',
    'queue': 'RANKED_SOLO_5x5',
    'summonerName': 'MonPseudo'
    //-OR- 
    //'summonerId': 60783 
}, function(data) {
    //process data 
});

`

Alors, il n’y a qu’une seule virgule, et c’est pour séparer "api.getLeague" et la fonction. Cette virgule est donc obligatoire. Je ne vois aucune autre virgule, même après un CTRL + F je n’en vois toujours pas. (Les deux autres sont obligatoires, c’est comme pour un fichier JSON d’après ce que j’ai compris sur le forum de riot.)

Dans l’erreur, il est bien indiqué que c’est une virgule qui est à l’origine de ça.

Ps: Je ne veut aucun code, juste de l’explication. Merci.

Source: https://www.npmjs.com/package/riot-api https://www.npmjs.com/package/lol-riot-api

Bonne journée/soirée

+0 -0

Salut !

Ce ne serait pas plutôt parce qu’il manque un ; après la clé d’API ?

Ymox

Non, j’ai déjà essayé.

Comme on te le demande à chaque fois, nous avons besoin du message d’erreur complet.

A-312

Désolé, je ferais plus attention la prochaine fois. Voici l’erreur complète :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
node riot-api.js
C:\Users\admin\Desktop\api riot game\node_modules\riot-api\index.js:205
    this.getCachedJSONRequest('http://prod.api.pvp.net/api/lol/' + region + '/v1.1/summoner/' + summonerIds + '/name?api_key='+this.API_KEY, ,
function(json) {
                                                                                                                                             ^

SyntaxError: Unexpected token ,
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:533:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\admin\Desktop\api riot game\riot-api.js:2:15)
PS C:\Users\admin\Desktop\api riot game>

Par contre, A-312 c’est pas une raison pour dislike mon post…

+0 -0
1
2
    this.getCachedJSONRequest('http://prod.api.pvp.net/api/lol/' + region + '/v1.1/summoner/' + summonerIds + '/name?api_key='+this.API_KEY, ,
                                                                                                                                             ^

Je sais pas ce qu’il te faut de plus.

Par contre, A-312 c’est pas une raison pour dislike mon post…

Si, c’est une très bonne raison. (-:

1
    this.getCachedJSONRequest('http://prod.api.pvp.net/api/lol/' + region + '/v1.1/summoner/' + summonerIds + '/name?api_key='+this.API_KEY, , function(json) {

effectivement y’a 2 virgules à la suite là.

Ca semble être un bug dans leur lib. C’est toi qui a ouvert ce ticket ?

Comme ça date de 2015 j’ai un doute… Je pense que tu devrais pouvoir trouver des bibliothèques de meilleure qualité pour cette API, non ?

+1 -0
1
    this.getCachedJSONRequest('http://prod.api.pvp.net/api/lol/' + region + '/v1.1/summoner/' + summonerIds + '/name?api_key='+this.API_KEY, , function(json) {

effectivement y’a 2 virgules à la suite là.

Ca semble être un bug dans leur lib. C’est toi qui a ouvert ce ticket ?

Comme ça date de 2015 j’ai un doute… Je pense que tu devrais pouvoir trouver des bibliothèques de meilleure qualité pour cette API, non ?

Javier

Non, ce n’est pas moi qui l’a ouvert. Mhh, j’en ai trouvé quelques unes, mais pas top il me semble. Celle-ci sûrement : npm install riot-api-nodejshttps://www.npmjs.com/package/riot-api-nodejs

1
2
    this.getCachedJSONRequest('http://prod.api.pvp.net/api/lol/' + region + '/v1.1/summoner/' + summonerIds + '/name?api_key='+this.API_KEY, ,
                                                                                                                                             ^

Je sais pas ce qu’il te faut de plus.

Par contre, A-312 c’est pas une raison pour dislike mon post…

Si, c’est une très bonne raison. (-:

dab

Oublier de mettre l’erreur est une raison de dislike ? Si tu le dis…

+0 -0

Oublier de mettre l’erreur est une raison de dislike ? Si tu le dis…

Awoken

C’est une bonne raison dans la mesure où cela fait perdre le temps pour tout le monde (toi compris). D’autant plus que, comme l’a dit A-312, ce n’est pas la première fois ;)

Jérôme Deuchnord

Nan, mais il me la préciser que j’avais pas mis l’erreur, et c’est une faute de ma part, je l’assume.

Bref, on va pas s’éterniser dessus, actuellement je cherche une solution sur des forums et des docs, si quelqu’un à une solution ce serait top car là, j’en trouve pas.

D’ailleurs, j’ai été gentil. :ange: Quand j’ai vu que tu avais mis l’erreur complète j’ai enlevé le pouce rouge. (Finalement pour ce commentaire, j’aurais pu le laisser et en mettre un autre :pirate: ).

Ce pouce rouge signifie simplement "fait des efforts".


D’autant plus que dans le message d’erreur :

  • Tu as le nom du fichier, la ligne ;
  • Un message très précis ;
  • Un petit ^ qui indique précisément la virgule en trop.

Ceci t’a été expliqué plusieurs fois.


Ce genre d’API est très bien documentée, elle est réalisée pour les développeurs peu-expérimentés, pour que les joueurs avec quelques connaissances réalisent quelques choses facilement.

https://developer.riotgames.com/getting-started.html


En plus de ce que j’ai vu, il y a que du GET, c’est cadeau. Tu n’as pas besoin de lib pour faire ça, juste de HTTP.get et de JSON.parse pour le retour.

D’ailleurs, j’ai été gentil. :ange: Quand j’ai vu que tu avais mis l’erreur complète j’ai enlevé le pouce rouge. (Finalement pour ce commentaire, j’aurais pu le laisser et en mettre un autre :pirate: ).

Ce pouce rouge signifie simplement "fait des efforts".


D’autant plus que dans le message d’erreur :

  • Tu as le nom du fichier, la ligne ;
  • Un message très précis ;
  • Un petit ^ qui indique précisément la virgule en trop.

Ceci t’a été expliqué plusieurs fois.


Ce genre d’API est très bien documentée, elle est réalisée pour les développeurs peu-expérimentés, pour que les joueurs avec quelques connaissances réalisent quelques choses facilement.

https://developer.riotgames.com/getting-started.html


En plus de ce que j’ai vu, il y a que du GET, c’est cadeau. Tu n’as pas besoin de lib pour faire ça, juste de HTTP.get et de JSON.parse pour le retour.

A-312

Ah ok désolé, je l’avais mal pris :D

Je vais m’y intérésser, merci beaucoup !

Alors, j’ai l’impréssion que l’une des livs n’est pas à jours (http_request) https://www.npmjs.com/package/http_request

Erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
C:\Users\admin\node_modules\http_request\lib\HttpRequest.js:124
            options.method = 'GET';
                           ^

TypeError: Cannot set property 'method' of undefined
    at Object.get (C:\Users\admin\node_modules\http_request\lib\HttpRequest.js:124:28)
    at Object.<anonymous> (C:\Users\admin\Desktop\api riot game\riot.js:4:13)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Function.Module.runMain (module.js:605:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:575:3

Après pas mal de recherches, et d’essayer de comprendre par moi-même, j’ai pu en déduire que :

  • L’erreur vien de la lib et plus principalement du fichier "HttpRequest.js" qui se situe à cette adresse : C:\Users\admin\node_modules\http_request\lib\HttpRequest.js:124

  • L’erreur est à la ligne 124 du fichier Http.request

  • C’est au "=" qu’il y à un problème.

Je vous demande une seule question : Vaux mieux utiliser une autre lib, ou essayer de réparer moi-même l’erreur dans le fichier HttpReqest.js ?

Merci.

Comprends-tu l’anglais ?


Tu n’as pas déclaré options.

1
var options = {};

puis tu pourras faire :

1
options.method = "GET";
A-312

Non, je comprends pas l’anglais, et c’est d’ailleurs principalement à cause de ça que j’ai beaucoup de mal à lire les docs :'(

Tu peux m’expliquer pourquoi tu ne déclare pas options comme une variable ?

+0 -0

Tu dois déclarer option comme un object. Sinon tu ne pourras pas faire ".method".

Nodejs n’est peut-être pas le meilleur langage si tu ne comprends pas l’anglais.

A-312

Ah ok, jvais me renseigner un peu plus.

Ouais mais le problème est que je suis vraiment attiré par ce framework, et il est vraiment complet, donc bon :/

EDIT : Les lignes de codes que tu m’as donné, je les mets dans le HttpRequest.js ?

+0 -0

En effet, elle est vieille d’un an.

Tu n’es pas obligé de télécharger un module. Utilise simplement le package qui est joint avec nodejs, sinon utilise request si tu veux vraiment utiliser une lib.

A-312

Tu parles de node_modules quand tu dis package ?

Ok, je vais voir la doc de request !

Tu penses que je devrais continuer par quoi ? En sachant que je maîtrise seulement l’HTML/CSS et j’ai du mal avec js.

J’ai déjà fait quelques bots et un formulaire de contact en node mais rien de plus

Je ne suis pas sûr que tu as bien compris le fonctionnement de nodejs.

Nodejs est livré avec des modules pré-installés. Listés ici : https://nodejs.org/api/

Tu n’as donc pas besoin d’installer un module (avec npm install) pour utiliser require("http").

https://nodejs.org/api/http.html#http_http_get_options_callback

(module ou package c’est la même chose)

A-312

Euh, tout ce code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
http.get('http://nodejs.org/dist/index.json', (res) => {
  const { statusCode } = res;
  const contentType = res.headers['content-type'];

  let error;
  if (statusCode !== 200) {
    error = new Error('Request Failed.\n' +
                      `Status Code: ${statusCode}`);
  } else if (!/^application\/json/.test(contentType)) {
    error = new Error('Invalid content-type.\n' +
                      `Expected application/json but received ${contentType}`);
  }
  if (error) {
    console.error(error.message);
    // consume response data to free up memory
    res.resume();
    return;
  }

  res.setEncoding('utf8');
  let rawData = '';
  res.on('data', (chunk) => { rawData += chunk; });
  res.on('end', () => {
    try {
      const parsedData = JSON.parse(rawData);
      console.log(parsedData);
    } catch (e) {
      console.error(e.message);
    }
  });
}).on('error', (e) => {
  console.error(`Got error: ${e.message}`);
});

Juste pour une requête ?!

Et ducoup, je dois utiliser la console de node ?

+0 -0

Pour être plus clair dans ce que je veux faire :

En fait, j’aimerais crée deux variables, une variable "win" et l’autre "loose" Lorsque le joueur perd une partie, il faut que la variable est 1 en plus (+1) et pareil lorsque la personne perd.

Exemple : Je perds une partie, la variable contient "1" Je perds une deuxième partie, la variable contient "2" Et la même chose lorsque je gagne.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte