Jump to content
McKay Development

Dr. McKay

Administrator
  • Posts

    3660
  • Joined

  • Last visited

Everything posted by Dr. McKay

  1. Can you give any details?
  2. 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.
  3. 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.
  4. Check how steam-session works.
  5. I think you're probably having issues because you're setting up a new interval every time webSession is emitted, so eventually you're calling handleWebSession() many times all at once.
  6. Oh, you're not logging in? 401 sounds like a private inventory then.
  7. No, that just sets a refresh token on the LoginSession instance without doing anything else.
  8. Your Steam session expires after a while and you'll need to login again when you get 401.
  9. Sounds like the GC isn't sending that data back anymore.
  10. Yes, a new secret is generated when a mobile authenticator is set up. When logging in using steam-user, you need to refresh your web session periodically. Call webLogOn() to do so.
  11. Either your secret is wrong or your clock is wrong. If getTimeOffset returns 0, that means that your secret is wrong.
  12. It doesn't matter as far as I'm aware.
  13. Certainly is. I can't really support your setup if you aren't using Node.js, since my modules are specifically for Node.js.
  14. Use https://www.npmjs.com/package/steam-session directly to log onto Steam.
  15. Change the logonID when you call logOn in steam-user.
  16. If the clock is right, then the secret must be wrong. Try using the secret in a test script locally. If it generates correct codes, something is wrong with how you're transporting the secret to Heroku; maybe it's encoding it weirdly. If it's wrong locally, then you have the wrong secret. Maybe you exported it from SDA wrong.
  17. If the codes it's generating don't match the codes generated by the app, then your secret is wrong or the clock is wrong.
  18. https://github.com/DoctorMcKay/node-steamcommunity/wiki/CSteamUser#getinventorycontentsappid-contextid-tradableonly-language-callback
  19. I don't really have the time or capacity to do one-on-one coaching for reimplementing the Steam protocols yourself. I'd suggest checking the existing code and trying to copy it as exactly as possible.
  20. Make sure you could send a message to that user ordinarily. Also make sure you've set yourself to online.
  21. You can do this with steam-session.
  22. What do you receive error 15 in response to? How are you receiving it?
  23. https://steamerrors.com/5 Sounds like you aren't logging in correctly.
  24. Only one Steam client session can be in-game at a time or else you get the LoggedInElsewhere error you mentioned. That guy isn't running CS2 on the same account twice; the real game instance must be logged in under a different account. No.
×
×
  • Create New...