Jump to content
McKay Development

Dr. McKay

Administrator
  • Posts

    3631
  • Joined

  • Last visited

Everything posted by Dr. McKay

  1. You would need to download and parse items_game.txt, look up the sticker by its sticker_id, then fetch your appropriate language file to translate the localization key into an actual name.
  2. It's a Date object. You can use its UTC methods to manipulate the object in UTC/GMT.
  3. Market confirmations have existed for a very long time. You can use node-steamcommunity to accept them.
  4. It's fine in this case, don't worry about it.
  5. Those xml endpoints are pretty unreliable and anything that uses them should probably be considered deprecated. Using the WebAPI for anything that it covers is going to be your best bet.
  6. Why would you need to authenticate? Just use an API key.
  7. You can get that data using GetPlayerSummaries.
  8. That's expected behavior. If it's no longer connected to Steam, the data may be stale. Cache it somewhere else yourself if you need it after disconnect.
  9. Values like what?
  10. Did you decline the login on your mobile device? That's what I've seen cause FileNotFound.
  11. Ignore any id and assetid properties in the description object when you merge it onto the asset object.
  12. That error code indicates that your item ID is wrong or doesn't exist. Some people have reported that item descriptions now contain invalid asset IDs which you need to filter out if you're parsing inventories yourself.
  13. You likely have some kind of network issue. Add this and see what's happening: client.on('debug', console.log);
  14. Looks fine to me, you probably have a mistake elsewhere in your code.
  15. What versions are you using?
  16. client.chat.on('chatMessage', function (message) { // message is an object that includes chat_group_id and chat_id properties // ref: https://github.com/DoctorMcKay/node-steam-user/wiki/SteamChatRoomClient#incoming-chat-message });
  17. You can't send a trade with an API key. If a trade offer includes CS2 items, you can't check its status with an API key.
  18. Cookies issued using the SteamClient platform type are universal and work across all domains.
  19. TradeOfferManager isn't ready until you call setCookies on it. You can get cookies from SteamUser's webSession event.
  20. Can you give any details?
  21. Every Steam WebAPI endpoint that accepts and outputs protobuf also accepts input_json, and will output json. Here is the protobuf definition for BatchedQueryRewardItems/v1, and repeated .CLoyaltyRewards_QueryRewardItems_Request requests means that it expects a json object with key "requests", which is an array of CLoyaltyRewards_QueryRewardItems_Request objects, which is defined here. So we could make a URL like this: https://api.steampowered.com/ILoyaltyRewardsService/BatchedQueryRewardItems/v1?input_json=%7B%22requests%22%3A%5B%7B%22appids%22%3A%5B%5D%2C%22community_item_classes%22%3A%5B3%5D%2C%22reward_types%22%3A%5B1%5D%2C%22excluded_community_item_classes%22%3A%5B%5D%2C%22definitionids%22%3A%5B%5D%2C%22filters%22%3A%5B4%5D%2C%22filter_match_all_category_tags%22%3A%5B%5D%2C%22filter_match_any_category_tags%22%3A%5B%5D%2C%22contains_definitionids%22%3A%5B%5D%2C%22excluded_content_descriptors%22%3A%5B%5D%2C%22excluded_appids%22%3A%5B%5D%2C%22excluded_store_tagids%22%3A%5B%5D%2C%22store_tagids%22%3A%5B%5D%2C%22time_available%22%3Anull%2C%22language%22%3A%22english%22%2C%22count%22%3A10%2C%22cursor%22%3Anull%2C%22sort%22%3A2%2C%22sort_descending%22%3Afalse%2C%22include_direct_purchase_disabled%22%3Anull%2C%22search_term%22%3Anull%7D%2C%7B%22appids%22%3A%5B%5D%2C%22community_item_classes%22%3A%5B17%5D%2C%22reward_types%22%3A%5B1%5D%2C%22excluded_community_item_classes%22%3A%5B%5D%2C%22definitionids%22%3A%5B%5D%2C%22filters%22%3A%5B%5D%2C%22filter_match_all_category_tags%22%3A%5B%5D%2C%22filter_match_any_category_tags%22%3A%5B%5D%2C%22contains_definitionids%22%3A%5B%5D%2C%22excluded_content_descriptors%22%3A%5B%5D%2C%22excluded_appids%22%3A%5B%5D%2C%22excluded_store_tagids%22%3A%5B%5D%2C%22store_tagids%22%3A%5B%5D%2C%22time_available%22%3Anull%2C%22language%22%3A%22english%22%2C%22count%22%3A10%2C%22cursor%22%3Anull%2C%22sort%22%3A2%2C%22sort_descending%22%3Afalse%2C%22include_direct_purchase_disabled%22%3Anull%2C%22search_term%22%3Anull%7D%5D%7D With a large enough request, you might run into URL length limitations, in which case you'd want to encode your request using those protobufs. I believe you could still pass &format=json to get a json response even if you send a protobuf request. Exactly what the community item classes, reward types, etc mean, I don't know.
  22. The callback to getOffers has three argument, not two. It's (err, sent, received) Your code as written is only looking at sent offers, so it's expected you wouldn't see your received offers in there. I also see some other issues in your code. Firstly, you're creating a new 30-second interval on checkTrades every time webSession is emitted, so after two webSession events you're calling checkTrades twice every 30 seconds, thrice after 3 emits, and so on. This is in addition to TradeOfferManager's internal 30 second polling that you've enabled via pollInterval: 30000. I'd recommend that you eliminate your checkTrades function entirely and instead use the offerList event, which is designed for exactly what you're using checkTrades for now. It'll be emitted every time TradeOfferManager performs a poll, which is every 30 seconds as configured here.
×
×
  • Create New...