Closed UghThatGuyAgain closed 7 years ago
To provide some more information: I'm using the summoner call to get the account id of a player to get a matchlist, with the discord.js library. The command would be %summoner
Finally, a basic example of what I'm doing:
api.Summoner.by.name(name) .then(data => { api.Matchlist.by.id(data.accountId) .then(matchdata => { console.log(matchdata.matches[0].lane); }).catch(error => console.error(error)) // Matchlist by id }).catch(error => console.error(error)) // Summoner by name
When name is ÁssBlaster, it returns the 404. When name is Dropkicked, it returns the lane, (usually JUNGLE or BOTTOM).
(Apologies for spacing and such, Github's code option with the backticks was even worse.
you should be doing
api.Matchlist.by.account(data.accountId)
by.id = SummonerId // You put an accountId in this id function, causing a 404 because there's no summoner with a summoner id that equals that account id (sometimes, these situations do occur though). by.account = AccountId
https://github.com/ChauTNguyen/kindred-api/wiki/SUMMONER-V3
It can be somewhat confusing, but at the time I decided to go with the shorter names because I didn't think Riot would use account ids for the endpoints; Based on that, I decided that the primary id is the summoner id, which is why I simply use by.id instead of by.summonerId or something like that. In hindsight, that was a bad idea. :) Other libraries that spawned after mine use more verbose names like by.summonerId and by.accountId (these are much better).
Note that there is a shortcut for what you're doing:
k.Matchlist.by.name('ÁssBlaster')
will handle the summoner conversion for you.
Okay, thanks! But just for confirmation, this still takes 1 rate count off of summoner, and then 1 off matchlist, correct? It shouldn't matter, considering rates are crazy high, but I was just curious.
@UghThatGuyAgain
Yeah, unfortunately it still does haha. It's just a small way of cleaning up a lot of function chaining.
Alright, thanks. Completely missed that there was a matchlist by name method, I should really read closer. Keep up the good work!
It's possible that it's a mistake on my part, but I've been doing some testing and it appears that special characters that are allowed on League (in my case, the Á in ÁssBlaster) aren't working with the library. Testing the same method with different usernames without them works, which leads me to believe that these characters are screwing it up.