Difference between revisions of "Talk:WebAPI/Feedback"
(→GetSchema) |
m (Undo edit by Callbackfunction (Talk) (1780109) I'm just gonna restore this back to how it was.) |
||
(175 intermediate revisions by 28 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | {{ambox|type=notice-2|image=Pictogram_info.png|contents=Please use this page for reporting and discussing possible issues or inconsistencies with the API documentation or API itself. This is not for learning how to properly use one.}} |
− | + | {{Archive list|archives = [[/Archive 1|1]] [[/Archive 2|2]] [[/Archive 3|3]]}} | |
− | |||
− | + | [[Category:WebAPI|Feedback]] | |
− | + | == Dota 2 — item rarity == | |
− | + | Can you add item '''rarity''' (not '''quality''') to the ''GetSchema API'' call? It`s very strange to not present rarity here. There is only quality now, but it is useless for Dota 2. --[[User:Ohar|Ohar]] ([[User talk:Ohar|talk]]) 03:52, 30 October 2013 (PDT) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Improperly formed JSON float_values for decal attributes - still not resolved == | |
− | + | http://wiki.teamfortress.com/wiki/Talk:WebAPI/Feedback/Archive_3 has the previous thread. I'm still receiving the improperly formed JSON :( Just FYI - thanks! [[User:VMDX|VMDX]] 14:37, 21 November 2011 (PST) | |
− | + | : Alright I've been on the lookout for this regression on my own logs for optf2 and asking around. I cannot find any reproductions. Care to give an id64 that exhibits this problem? -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 22:05, 30 November 2011 (PST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | --[[User: | + | :: ex: in 76561198005981351 : "attributes": [ { "defindex": 152, "value": 1879034420, "float_value": 158326252166124510000000000000. }, { "defindex": 227, "value": 117757579, "foat_value": 0.000000 } ] |
+ | :: Some json decoders break because the number doesn't have the 0 after the dot. I don't see this happen in PHP but I've heard others having this problem [[User:Ruiner|Ruiner]] 21:02, 22 April 2012 (PDT) | ||
+ | ::: [https://plus.google.com/b/107947934768801101757/107947934768801101757/posts/ESL2ibu3VDR Yep I've spoken to an employee about it and they said they'll look into it tomorrow. Apologies for not noting this on the talk page sooner.] -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 21:15, 22 April 2012 (PDT) | ||
− | === | + | == Painted items == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | I noticed that the steam community inventory viewer has images with paints embedded in them. Would it be possible for the backpack items to include the encoded URL for the image with paint. | |
− | + | ex: [http://cdn.steamcommunity.com/economy/image/HZzrHVtyDPzKTe4tK5JD9aXQIawfAgKiD4I1O4JoElrAlMX9DCVb5GOV9N8PsxFmtIshuhcCEqEajjoi3DFGA9HJza8Ue0jiaoeliFD7F2aqmTy_SkNe_guGJjeSbgtS6pLN_SpnWflp37-MVbhKaf3FZL4dHBXmT4JmYtQ1SAeDnJztTTMLsm_cqd5U60sz-5Zs8lVDSg==/96fx96f with paint] -- [[User:Ruiner|Ruiner]] 07:13, 25 February 2012 (PST) | |
− | |||
− | |||
− | === | + | == custom texture lo - Invalid JSON == |
− | |||
− | |||
− | |||
− | + | I had another talk with Drunken. This is the relevant part of his response on the matter. I'll be giving a language-independent workaround in a while if time permits. | |
− | + | <pre> | |
− | I' | + | 1:34 PM - Drunken F00l: I know why it's printing bad values, yes |
− | : | + | 1:34 PM - Drunken F00l: it's just truncating |
− | :: | + | 1:35 PM - Drunken F00l: I'll get it fixed but the fix probably won't ship until next week |
− | + | </pre> -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 16:10, 23 April 2012 (PDT) | |
− | The | + | : Here is a temporary workaround for the problem, as promised. This call is for python's re module but should be similarly easy to modify as needed for basically any regex implementation out there. What the expression is doing is searching for a line with 0 or more characters of whitespace at the beginning, followed by the normal float_value key and then an arbitrary length integer followed by a decimal point and non-decimal character. The part of the string preceding the decimal point is captured and reinserted into a string suffixed with '.0'. I hope you find it useful. <code>re.sub('(\s*"float_value": -?\d+)\.[^\d]', '\\1.0', obj)</code> -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 21:08, 23 April 2012 (PDT) |
− | === | + | :: Fixed a small bit of the regexp. I'll let my commit message describe what the change was since it does it best: Because apparently I thought that the bug was choosy about what side of a 0 it appears on. -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 08:48, 24 April 2012 (PDT) |
− | + | ||
+ | ::replace(".\n",".0\n") [[User:Base1024|base1024]] 12:35, 24 April 2012 (PDT) | ||
+ | ::: Keeping in mind that this will break on caching/minifying proxies -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 12:37, 24 April 2012 (PDT) | ||
+ | |||
+ | == Item Origin == | ||
+ | |||
+ | Item origin is buggy and/or incorrect. For example, many Bill's Hats are showing as timed drop. This was a promotional item and should be marked as such. There is also an origin flag "traded", but it's not clear when that attribute is used: Traded items usually do not acquire the origin to be set as "traded". For example, store purchased keys will keep their store purchased after being traded. My suggestion would be to make the item origin cumulative. If an item was purchased, then traded, it should be possible to tell what the original origin was, as well as the current origin. This way, we can tell in a user's inventory if the item has ever been traded, or if he is the original owner. | ||
+ | |||
+ | -- [[User:Ruiner|Ruiner]] 18:48, 24 April 2012 (PDT) | ||
+ | |||
+ | == Unexpected EOT character in Chinese (zh-tw) custom item name == | ||
+ | |||
+ | Backpack in question: 76561198038762828 | ||
+ | |||
+ | |||
+ | TF2B: http://tf2b.com/tf2/76561198038762828 '''FAILED''' | ||
+ | |||
+ | OPTF2: http://optf2.com/tf2/user/76561198038762828 <del>'''FAILED'''</del> '''SUCCESS (Thanks)''' | ||
+ | |||
+ | TF2Items: http://www.tf2items.com/profiles/76561198038762828 '''SUCCESS''' | ||
+ | |||
+ | |||
+ | ''ValueError: Invalid control character at: line 766 column 44 (char 12881)'' | ||
+ | |||
+ | http://i.imgur.com/5o6C9.png | ||
+ | |||
+ | |||
+ | I hope this is the last error I find. | ||
+ | |||
+ | [[User:Base1024|base1024]] 04:51, 27 May 2012 (PDT) | ||
+ | |||
+ | == Unexpected SOH character in Russian custom item name == | ||
+ | |||
+ | Backpack in question: 76561198045241951 | ||
+ | |||
+ | |||
+ | TF2B: http://tf2b.com/tf2/76561198045241951 '''FAILED''' | ||
+ | |||
+ | OPTF2: http://optf2.com/tf2/user/76561198045241951 <del>'''FAILED'''</del> '''SUCCESS (Thanks)''' | ||
+ | |||
+ | TF2Items: http://www.tf2items.com/profiles/76561198045241951 '''SUCCESS''' | ||
+ | |||
+ | |||
+ | ''ValueError: Invalid control character at: line 2233 column 37 (char 39047)'' | ||
+ | |||
+ | http://i.imgur.com/RKud0.png | ||
+ | |||
+ | [[User:Base1024|base1024]] 05:12, 27 May 2012 (PDT) | ||
+ | |||
+ | : Hmm, I've known about this error for some time now but it looks like I misjudged where it actually was, and thought that it was fixed in optf2 for quite a long time, as did Athernar. This also happens with some english names that have certain non-ASCII characters in them if I recall correctly. So stuff that does strict encoding will fail on it. Well, at least now that '''FAILED''' for optf2 can be turned into '''SUCCESS'''. Thanks for providing me a real reproduction. -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 15:48, 27 May 2012 (PDT) | ||
+ | |||
+ | == Date/Time of when the item was acquired? Also, ResolveVanityURL == | ||
+ | |||
+ | Heres a suggestion: On each item in GetPlayerItems, it could also return the timestamp of when that item was found/bought/traded/otherwise appeared in the users' inventory. | ||
+ | |||
+ | This would allow people to check when an item was found and also could be used to make visual graphs about a users' item drops. | ||
+ | |||
+ | Also, I don't see the point behind ResolveVanityURL. Why have it as a separate method? It just means that I have to query the API twice whenever I have a vanity URL, which slows things down quite significantly (when you're from Australia with ~250ms ping to api.steampowered.com, this makes a difference.) Why not just have a separate field in most things, so you either have to supply the SteamID or the vanity URL? | ||
+ | If thats not possible, you could also adjust ResolveVanityURL to take a list of vanity strings -- something like GetPlayerSummaries but with a list of vanity URLs instead. | ||
+ | |||
+ | my two cents [[User:Pigophone|Pigophone]] 03:04, 27 April 2013 (PDT) | ||
+ | |||
+ | : I agree with the timestamp. That would certainly be nice. As for the vanity resolver it was mostly a compromise between myself, Joe, and Athernar and possibly some other authors. For one reason or another they wouldn't write something to give vanity URLs directly to the methods. It's mostly to stop people from having to make requests to steamcommunity.com/id/whatever to get the id64s. So compared to that it's fantastic. One of the reasons gave for not just allowing the vanity url and id64 in the same parameter was ambiguity since people can make their vanity urls the same as someone's id64. Your suggestion for different parameters would work. But it'd be so much easier for them to just not allow people to do that and do the vanity resolves themselves since their database access is almost certainly going to be faster than a request. -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 03:55, 27 April 2013 (PDT) | ||
+ | |||
+ | == Inconsistent group IDs == | ||
+ | |||
+ | There's a problem with retrieving group IDs via the web API. If you use <code>ISteamUser/GetUserGroupList/v1</code> to get the user's groups, each group entry contains a <code>guid</code> which is supposedly the 64-bit ID of the group. '''But''', if you call <code>ISteamUser/GetPlayerSummaries/v0002/</code> with the same user ID, the group ID you get in <code>primaryclanid</code> is marginally bigger than any other ID <code>GetUserGroupList</code> gave you. When you go and check the group's page for links that contain the ID, like the "Invite Friends" link, you see the bigger group ID is the correct one. | ||
+ | |||
+ | Basically, it looks like <code>ISteamUser/GetUserGroupList/v1</code> returns older "32-bit" Steam IDs while <code>primaryclanid</code> inside <code>ISteamUser/GetPlayerSummaries/v0002/</code>'s data appears to be a correct, 64-bit Steam ID. [[User:Smiley|Smiley]] ([[User talk:Smiley|talk]]) 16:06, 16 September 2013 (PDT) | ||
+ | : It's not really a matter of which ID is new or old. The smaller (32 bit) ones are merely condensed versions of the 64 bit ones which for the most part have static bits. It's an optimization choice on the part of valve since naturally it saves space when sending packets (it seems silly but in practice those 4 bytes really add up when sending out UDP packets). Getting a 64 bit ID is merely a matter of taking the most significant 32 bits of a given 64 bit group ID and ORing those on to the condensed group ID (note that these might be 33 bits long, I can't remember at the moment if the group ID width can be the same as a user). -- [[User:Lagg|Lagg]] [[File:Backpack_Stickybomb_Launcher.png|24px|link=User_talk:Lagg]] 17:01, 16 September 2013 (PDT) | ||
+ | |||
+ | == Content of crates == | ||
+ | |||
+ | Any way to get a list? The schema only stores the names. [[User:Klenium|Klenium]] ([[User talk:Klenium|talk]]) 14:35, 22 November 2013 (PST) |
Latest revision as of 02:13, 14 October 2014
Please use this page for reporting and discussing possible issues or inconsistencies with the API documentation or API itself. This is not for learning how to properly use one. |
Contents
- 1 Dota 2 — item rarity
- 2 Improperly formed JSON float_values for decal attributes - still not resolved
- 3 Painted items
- 4 custom texture lo - Invalid JSON
- 5 Item Origin
- 6 Unexpected EOT character in Chinese (zh-tw) custom item name
- 7 Unexpected SOH character in Russian custom item name
- 8 Date/Time of when the item was acquired? Also, ResolveVanityURL
- 9 Inconsistent group IDs
- 10 Content of crates
Dota 2 — item rarity
Can you add item rarity (not quality) to the GetSchema API call? It`s very strange to not present rarity here. There is only quality now, but it is useless for Dota 2. --Ohar (talk) 03:52, 30 October 2013 (PDT)
Improperly formed JSON float_values for decal attributes - still not resolved
http://wiki.teamfortress.com/wiki/Talk:WebAPI/Feedback/Archive_3 has the previous thread. I'm still receiving the improperly formed JSON :( Just FYI - thanks! VMDX 14:37, 21 November 2011 (PST)
- Alright I've been on the lookout for this regression on my own logs for optf2 and asking around. I cannot find any reproductions. Care to give an id64 that exhibits this problem? -- Lagg 22:05, 30 November 2011 (PST)
- ex: in 76561198005981351 : "attributes": [ { "defindex": 152, "value": 1879034420, "float_value": 158326252166124510000000000000. }, { "defindex": 227, "value": 117757579, "foat_value": 0.000000 } ]
- Some json decoders break because the number doesn't have the 0 after the dot. I don't see this happen in PHP but I've heard others having this problem Ruiner 21:02, 22 April 2012 (PDT)
Painted items
I noticed that the steam community inventory viewer has images with paints embedded in them. Would it be possible for the backpack items to include the encoded URL for the image with paint. ex: with paint -- Ruiner 07:13, 25 February 2012 (PST)
custom texture lo - Invalid JSON
I had another talk with Drunken. This is the relevant part of his response on the matter. I'll be giving a language-independent workaround in a while if time permits.
1:34 PM - Drunken F00l: I know why it's printing bad values, yes 1:34 PM - Drunken F00l: it's just truncating 1:35 PM - Drunken F00l: I'll get it fixed but the fix probably won't ship until next week
-- Lagg 16:10, 23 April 2012 (PDT)
- Here is a temporary workaround for the problem, as promised. This call is for python's re module but should be similarly easy to modify as needed for basically any regex implementation out there. What the expression is doing is searching for a line with 0 or more characters of whitespace at the beginning, followed by the normal float_value key and then an arbitrary length integer followed by a decimal point and non-decimal character. The part of the string preceding the decimal point is captured and reinserted into a string suffixed with '.0'. I hope you find it useful.
re.sub('(\s*"float_value": -?\d+)\.[^\d]', '\\1.0', obj)
-- Lagg 21:08, 23 April 2012 (PDT)
- Fixed a small bit of the regexp. I'll let my commit message describe what the change was since it does it best: Because apparently I thought that the bug was choosy about what side of a 0 it appears on. -- Lagg 08:48, 24 April 2012 (PDT)
Item Origin
Item origin is buggy and/or incorrect. For example, many Bill's Hats are showing as timed drop. This was a promotional item and should be marked as such. There is also an origin flag "traded", but it's not clear when that attribute is used: Traded items usually do not acquire the origin to be set as "traded". For example, store purchased keys will keep their store purchased after being traded. My suggestion would be to make the item origin cumulative. If an item was purchased, then traded, it should be possible to tell what the original origin was, as well as the current origin. This way, we can tell in a user's inventory if the item has ever been traded, or if he is the original owner.
-- Ruiner 18:48, 24 April 2012 (PDT)
Unexpected EOT character in Chinese (zh-tw) custom item name
Backpack in question: 76561198038762828
TF2B: http://tf2b.com/tf2/76561198038762828 FAILED
OPTF2: http://optf2.com/tf2/user/76561198038762828 FAILED SUCCESS (Thanks)
TF2Items: http://www.tf2items.com/profiles/76561198038762828 SUCCESS
ValueError: Invalid control character at: line 766 column 44 (char 12881)
I hope this is the last error I find.
base1024 04:51, 27 May 2012 (PDT)
Unexpected SOH character in Russian custom item name
Backpack in question: 76561198045241951
TF2B: http://tf2b.com/tf2/76561198045241951 FAILED
OPTF2: http://optf2.com/tf2/user/76561198045241951 FAILED SUCCESS (Thanks)
TF2Items: http://www.tf2items.com/profiles/76561198045241951 SUCCESS
ValueError: Invalid control character at: line 2233 column 37 (char 39047)
base1024 05:12, 27 May 2012 (PDT)
- Hmm, I've known about this error for some time now but it looks like I misjudged where it actually was, and thought that it was fixed in optf2 for quite a long time, as did Athernar. This also happens with some english names that have certain non-ASCII characters in them if I recall correctly. So stuff that does strict encoding will fail on it. Well, at least now that FAILED for optf2 can be turned into SUCCESS. Thanks for providing me a real reproduction. -- Lagg 15:48, 27 May 2012 (PDT)
Date/Time of when the item was acquired? Also, ResolveVanityURL
Heres a suggestion: On each item in GetPlayerItems, it could also return the timestamp of when that item was found/bought/traded/otherwise appeared in the users' inventory.
This would allow people to check when an item was found and also could be used to make visual graphs about a users' item drops.
Also, I don't see the point behind ResolveVanityURL. Why have it as a separate method? It just means that I have to query the API twice whenever I have a vanity URL, which slows things down quite significantly (when you're from Australia with ~250ms ping to api.steampowered.com, this makes a difference.) Why not just have a separate field in most things, so you either have to supply the SteamID or the vanity URL? If thats not possible, you could also adjust ResolveVanityURL to take a list of vanity strings -- something like GetPlayerSummaries but with a list of vanity URLs instead.
my two cents Pigophone 03:04, 27 April 2013 (PDT)
- I agree with the timestamp. That would certainly be nice. As for the vanity resolver it was mostly a compromise between myself, Joe, and Athernar and possibly some other authors. For one reason or another they wouldn't write something to give vanity URLs directly to the methods. It's mostly to stop people from having to make requests to steamcommunity.com/id/whatever to get the id64s. So compared to that it's fantastic. One of the reasons gave for not just allowing the vanity url and id64 in the same parameter was ambiguity since people can make their vanity urls the same as someone's id64. Your suggestion for different parameters would work. But it'd be so much easier for them to just not allow people to do that and do the vanity resolves themselves since their database access is almost certainly going to be faster than a request. -- Lagg 03:55, 27 April 2013 (PDT)
Inconsistent group IDs
There's a problem with retrieving group IDs via the web API. If you use ISteamUser/GetUserGroupList/v1
to get the user's groups, each group entry contains a guid
which is supposedly the 64-bit ID of the group. But, if you call ISteamUser/GetPlayerSummaries/v0002/
with the same user ID, the group ID you get in primaryclanid
is marginally bigger than any other ID GetUserGroupList
gave you. When you go and check the group's page for links that contain the ID, like the "Invite Friends" link, you see the bigger group ID is the correct one.
Basically, it looks like ISteamUser/GetUserGroupList/v1
returns older "32-bit" Steam IDs while primaryclanid
inside ISteamUser/GetPlayerSummaries/v0002/
's data appears to be a correct, 64-bit Steam ID. Smiley (talk) 16:06, 16 September 2013 (PDT)
- It's not really a matter of which ID is new or old. The smaller (32 bit) ones are merely condensed versions of the 64 bit ones which for the most part have static bits. It's an optimization choice on the part of valve since naturally it saves space when sending packets (it seems silly but in practice those 4 bytes really add up when sending out UDP packets). Getting a 64 bit ID is merely a matter of taking the most significant 32 bits of a given 64 bit group ID and ORing those on to the condensed group ID (note that these might be 33 bits long, I can't remember at the moment if the group ID width can be the same as a user). -- Lagg 17:01, 16 September 2013 (PDT)
Content of crates
Any way to get a list? The schema only stores the names. Klenium (talk) 14:35, 22 November 2013 (PST)