Jump to content
McKay Development

All Activity

This stream auto-updates

  1. Past hour
  2. I checked also that API endpoint you mention and still same state id, 3 (Completed). Now I thing that is something from steam, they didnt update properly the system, or they didnt update this endpoint. I think that node-steam-tradeoffer-manager module is also using this endpoint, so may not be a problem from module, but from steam. As a conclusion, the trade state is updated only on trade history API: https://api.steampowered.com/IEconService/GetTradeHistory/v1
  3. Today
  4. Thanks doc. Your'e a life saver as always. For now, as a temporary fix, I just logged into the bot using the steam client (or a web browser) and accepted the pop up manually in trade history page. It's working fine for now. currently waiting for the new update. ❤️
  5. Probably a GC limitation. You should wait until the item modified event is emitted after adding or removing an item before moving on to the next one.
  6. This is not unexpected. It was always just happenstance that this method worked via steam-user; it uses a method not used by any official Steam app. You should use node-steamcommunity instead, which uses the official method.
  7. I'm traveling right now. I'll be able to push out an update in the next couple days.
  8. could you check same trade using this api endpoint? I assume steam failed to update it. https://api.steampowered.com/IEconService/GetTradeOffer/v1/
  9. I'm trying to set up two-factor authentication using steam-user, but I keep running into an issue where the enableTwoFactor function consistently fails with result code 2. As a result, I'm not receiving any Activation code via email. I'm logging in with a username and password using steam-user, and once the webSession event is emitted, I start the two-factor setup process. There is currently no Steam Guard enabled on the account, and Steam Mail Guard is also disabled. I assume that if Steam Mail Guard were enabled, it would make sense that the process doesn't work—since Mail Guard is a form of Steam Guard. Is that correct? Interestingly, when I follow the same steps using Steam Desktop Authenticator, everything works as expected. As some other users have already pointed out, could there be an issue with the enableTwoFactor function itself? Or is the problem possibly on my end, in my code? Thanks!
  10. After the new steam update with the ability to reverse trades, I tested the revert system on a trade, but by calling manager.getOffer(), I am getting the same state id 3 (Completed), instead 12 (Rolled Back). This is the history of my trades using https://api.steampowered.com/IEconService/GetTradeHistory/v1 API. You can see how the original trade has been rolled back with status 12, and the other one is the rollback trade, which gave me back the item. And this is the response from manager.getOffer(). The state didnt change and is still 3. Any solutions for this problem? Is there comming a fix for this steam update for node-steam-tradeoffer-manager module?
  11. Yesterday
  12. You're probably trying to search items by context "2" (as all items for CS2 before), but new trade-protected items are in context "16"
  13. igor

    buy confirmation

    nevermind, I am just dumb: after the first request I do update to body but I don't update content-len header
  14. Since last nights update using getInventoryContents on your own inventory will only return your inventory without any of the trade protected items. I have 58 items in my inventory but 2 of them are trade protected so calling getInventoryContents with only return a count of 56 items, not 58. Is there any way to see how many CS2 items are in your inventory including trade protected items?
  15. Thanks for the code, this works for now, hopefully we can get something similar added to the offical steamcommunity node
  16. works fine, dont forget to change logger to console output or logger of your choice and community to your node-steamcommunity instance let tradeOfferAcknowledged = false; const acknowledgeTradeOffer = function(sessionId=null, callback) { try { if (tradeOfferAcknowledged) { const error = new Error('Trade offer has already been acknowledged'); logger.warn('Attempt to acknowledge trade offer that was already acknowledged'); if (callback) callback(error); return; } if (!community) { const error = new Error('Community not initialized'); logger.error('Cannot acknowledge trade offer - community not initialized'); if (callback) callback(error); return; } if (!sessionId) { sessionId = community.getSessionID(); } const options = { uri: 'https://steamcommunity.com/trade/new/acknowledge', method: 'POST', form: { sessionid: sessionId, message: 1 } }; logger.info('Acknowledging trade offer'); community.httpRequest(options, (err, response, body) => { if (err) { logger.error(`Error acknowledging trade offer: ${err}`); if (callback) callback(err); return; } // Check if response indicates success (currently Steam returns [] on success) if (response && response.statusCode === 200) { tradeOfferAcknowledged = true; logger.info(`Trade offer acknowledged successfully. Response: ${body}`); if (callback) callback(null, body); } else { const error = new Error(`Unexpected response from Steam: ${response ? response.statusCode : 'unknown'}`); logger.error(`Failed to acknowledge trade offer: ${error.message}. Response body: ${body}`); if (callback) callback(error); } }, 'acknowledgeTradeOffer'); } catch (error) { logger.error(`Error acknowledging trade offer: ${error}`); if (callback) callback(error); } };
  17. igor

    buy confirmation

    Hello everyone! Due to recent update I tried implementing buy order confirmation and I failed (partly)😞. I came here to ask for help because It seems I can't understand why my code runs into the problems. here are the pieces of my code: function getCookiesHeaders(contentLength, cookiesStr, itemName, game) { return { Accept: "*/*", "Accept-Encoding": "gzip, deflate, br, zstd", "Accept-Language": "en-US,en;q=0.9", Connection: "keep-alive", "Content-Length": contentLength, "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", Cookie: cookiesStr, Host: "steamcommunity.com", Origin: "https://steamcommunity.com", Referer: `https://steamcommunity.com/market/listings/${ GAME_IDENTIFIERS[game] }/${encodeURI(itemName)}`, "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "same-origin", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "sec-ch-ua": '"Google Chrome";v="138", "Not)A.Brand";v="8", "Chromium";v="138"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', }; } function getParamsWithFee(cookies, priceInfo) { const { converted_price: subtotal, converted_fee: fee } = priceInfo; return { sessionid: cookies.sessionid, currency: 18, subtotal, fee, total: fee + subtotal, quantity: 1, billing_state: "", save_my_address: 0, confirmation: 0 }; } function generateListingIdLink(listingId) { return "https://steamcommunity.com/market/buylisting/" + listingId; } async function buyItem(itemName, priceDetails, listingId, game, buyingCookies) { // all these params are fine const confData = { identitySecret: "myIdentitySecretFromMyFile", steamId: "mySteamIdFromMyFile", cookies: buyingCookies }; const { cookies, cookiesStr } = getStrObjCookies(buyingCookies); const params = getParamsWithFee(cookies, priceDetails); const { bodyParams, contentLength } = getSearchParamsData(params); const headers = getCookiesHeaders(contentLength, cookiesStr, itemName, game); const sendBuyReq = async () => { try{ const response = await axios.post(generateListingIdLink(listingId), bodyParams, { headers, validateStatus: (statusCode) => { return statusCode <= 400 || statusCode === 406}}) // validateStatus needs to be done because axios thinks that 406 statusCode here is error and it falls into catch scope console.log('Response status:', response.status); return response; }catch(err){ console.log(err.message, "--errorMsg--"); throw err; } } try { const { data } = await sendBuyReq(); // that's fine it works great. From SDA it's clearly visible that the buy order is set. // I tried here await waitTime(2) so my buy information could get in time to the servers. await confirmBuyListing(confData); // The problem might be right here but it's unlikely because by itself it works await waitTime(1); // I tried increasing time from 1 sec to 2 secs. bodyParams.set("confirmation", data.confirmation?.confirmation_id); // updataing params with confirmationId to send new buyLink() const { data: finalizedData } = await sendBuyReq(); // THE MAIN PROBLEM IS HERE if (finalizedData.success === 22) console.log(finalizedData); // testing } catch (err) { console.log(err); } } I tried checking for confirmation_id and it's fine. Left that just as bodyParams.set("confirmation", data.confirmation?.confirmation_id); I think that line with "// THE MAIN PROBLEM IS HERE" is main part because when I make request it shows "status:502" but the original repetitave steam request shows "status:406" And this is the part where I can't understand why I get 502 code in my code. If needed I will add confirmBuyListing function for clarification. Shortly I tested the function with browser manual buying and it confirmed and I bought the item Despite what I wrote above my second thought would be, the problem lies within both confirmation function and buyLink function. I've seen 3 diffrent projects that this confirmation logic was implemented in: C#, JS, PYTHON and I chose python approach because pythonists have already confirmed that they solved this confirmation problem so I tried to follow their solution (this solution could be found in steamPy issues on git). I don't know what is the cause of that status 502. I did almost everything I prayed and cursed and still can't find the cause of that. I am not giving up on this but the only thing I am looking here is help😰😰 *Possible solution is to run python solution directly in my js file from pythonists (the last thing I wanna do).
  18. also did anyone find the way to know if item is still protected or trade finalized? Clicking "acknowledge and close" sends post request: url: https://steamcommunity.com//trade/new/acknowledge body: sessionid=YOURSESSIONID&message=1
  19. After the recent cs2/steam trade policy update of 7-day protected items, I started receiving 2 errors which never happened before that's directly connected with auth/confirmations: 1. When trade is getting created with items_to_receive - the error 50 comes up which does not allow to create a trade (pre-validation) (https://steamerrors.com/50) 2. When trade is created with items_to_give, mobile confirmation using node-steamcommunity -> acceptConfirmationForObject fails with error - Could not act on confirmation. Thanks in advance for helping out.
  20. Today Steam update and add popup for Item Protection, it's make the function community.getConfirmations always failed. Once we login to the account and click on Acknowledged and Close, the function will able to work. Do we have any way to automatic close this popup on bots ?
  21. Last week
  22. JVz

    relog wierd behaviour

    Can't find consistent way to reproduce but got same behaviour again. I disabled my relog to let bot reconnect using autorelog Received disconnected event from steam user eresult=3 msg=NoConnection but didn't get error from steam user. 2 hours later still steamID is null. After restarting bot connected just fine
  23. While I was experimenting with the addToCasket() and removeFromCasket functions, I noticed that when I wanted to move larger amounts of items only 10 of them where actually moved. Is this because the GC can only handle 10 move actions simoultaneously or is this a f*up on my side?
  24. Do you have some way to reproduce this? Checking whether steamID is set on a timer is not the proper way to reconnect. This would run you into problems if SteamUser is currently attempting to connect but isn't yet logged on. You only need to call logOn() when your bot starts up, and if the error event is emitted.
  25. JVz

    relog wierd behaviour

    looks like sometimes client.steamID is null even when steam-user is logged in
  26. My bot checks every 10 minutes for client.steamID property and if its null I'm trying to relog with client.logOn but loggin on produces this errors: client error Error: LogonSessionReplaced steam user error: {"eresult":34} I'm also checking for client.publicIP and it is undefined when steamID is null I was thinking it can be issues with connection, so I've tried to check 5 times with 5 sec intervals before relogging and every time client.publicIP is undefined and client.steamID is null but after that bot relogs just fine with LogonSessionReplaced error, so I assume connection is okay
  27. Dr. McKay

    API

    That's your access token, aka your steamLoginSecure cookie. It gives complete access to your account. It is your session identifier.
  28. Solution was found, nevermind🦾
  29. Lukasz

    API

    Hello everyone, Do you guys know what data? and access to what gives this API token? - I know that you are able to get trade history out of this - but I wasnt able to find any docs - anyone any docs any info? Thanks! https://steamcommunity.com/pointssummary/ajaxgetasyncconfig
  1. Load more activity
×
×
  • Create New...