All Activity
- Yesterday
-
dawe started following How to get sticker image url
-
Hello! How do I get the sticker image url from its name programmatically?
- Last week
-
Bijovijo joined the community
-
Not as far as I'm aware.
-
Just checked the GetFriendList endpoint out and turns out having friends list on public is a requirement there. I wanted to check my friends only, seems like providing apiKey doesn't authenticate me so I still can't see my own friends 'cause I have it on private. Is there any other way to get friend_since?
-
steam-user doesn't do anything with API keys.
-
Should I use normal fetch for this or is there any functionality available that does apiKey embedding under the hood? Thanks.
-
You can just use ISteamUset/GetFriendList for that. Each friend has a unix time friend_since property.
-
Not related but interested. Can I somehow check with your libraries how long I've been friends with someone? I know that I can see that information in the trade window.
-
I'm not sure, I haven't tried it.
-
Great. Also, can I use the same refresh tokens to log in with two different instances of steam-user?
-
Yes, this is what refresh tokens are for.
-
Hi there. Is there any way to somehow save login info after once logging into Steam account to use for logging again with node-steam-user? For example like Steam works on browser, you login once and you are logged in for very long time. Like generating some logging info, saving it for later, then passing it to node-steam-user instance and you are logged in without actually authenticating from scratch again. I want to login instantly, like with minimal delay to be able to use node-steam-user normally.
- Earlier
-
furrycouch joined the community
-
Abrar wbst started following Assist me to use your bot functionality for the rust items
-
Hello, We are starting a new project to implement trading with Rust items. Previously, I worked on a project with CS items. Could you please assist me in using your bot functionality for Rust items? How can I find the context ID for Rust items?
-
Thanks, so if I want to keep same device i should listen to machineAuthToken event and pass this value to next logOn request. I am curious what will happen when I will have refresh token that is nearly to expire and I'll get new one using renewRefreshToken, will machine auth token aka "new device" remains the same without additional actions for this session?
-
Josiox changed their profile photo
-
Hello. I'm getting this error when I try to run storehouse-steamcommunity: Steam login fail: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined. How can I fix it? /** * STOREHOUSE - node-steamcommunity * * Uses node-steamcommunity to login to Steam, accept and confirm all incoming trade offers, * node-steam-totp to generate 2FA codes */ const SteamCommunity = require('steamcommunity'); const SteamTotp = require('steam-totp'); const TradeOfferManager = require('steam-tradeoffer-manager'); // use require('steam-tradeoffer-manager') in production const FS = require('fs'); const config = require('./config.js'); let community = new SteamCommunity(); let manager = new TradeOfferManager({ "domain": "example.com", // Our domain is example.com "language": "en", // We want English item descriptions "pollInterval": 5000 // We want to poll every 5 seconds since we don't have Steam notifying us of offers }); // Steam logon options let logOnOptions = { "accountName": config.accountName, "password": config.password, "twoFactorCode": SteamTotp.getAuthCode(config.sharedSecret) }; if (FS.existsSync('steamguard.txt')) { logOnOptions.steamguard = FS.readFileSync('steamguard.txt').toString('utf8'); } if (FS.existsSync('polldata.json')) { manager.pollData = JSON.parse(FS.readFileSync('polldata.json').toString('utf8')); } community.login(logOnOptions, function(err, sessionID, cookies, steamguard) { if (err) { console.log("Steam login fail: " + err.message); process.exit(1); } FS.writeFileSync('steamguard.txt', steamguard); console.log("Logged into Steam"); manager.setCookies(cookies, function(err) { if (err) { console.log(err); process.exit(1); // Fatal error return; } console.log("Cookies set"); }); }); manager.on('newOffer', function(offer) { console.log("New offer #" + offer.id + " from " + offer.partner.getSteam3RenderedID()); offer.accept(function(err, status) { if (err) { console.log("Unable to accept offer: " + err.message); } else { console.log("Offer accepted: " + status); if (status == "pending") { community.acceptConfirmationForObject(config.identitySecret, offer.id, function(err) { if (err) { console.log("Can't confirm trade offer: " + err.message); } else { console.log("Trade offer " + offer.id + " confirmed"); } }); } } }); }); manager.on('receivedOfferChanged', function(offer, oldState) { console.log(`Offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`); if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) { offer.getExchangeDetails((err, status, tradeInitTime, receivedItems, sentItems) => { if (err) { console.log(`Error ${err}`); return; } // Create arrays of just the new assetids using Array.prototype.map and arrow functions let newReceivedItems = receivedItems.map(item => item.new_assetid); let newSentItems = sentItems.map(item => item.new_assetid); console.log(`Received items ${newReceivedItems.join(',')} Sent Items ${newSentItems.join(',')} - status ${TradeOfferManager.ETradeStatus[status]}`) }) } }); manager.on('pollData', function(pollData) { FS.writeFileSync('polldata.json', JSON.stringify(pollData)); }); /* * Example output: * * Logged into Steam * Cookies set * New offer #474139989 from [U:1:46143802] * Offer accepted * Offer #474139989 changed: Active -> Accepted * Received: Reinforced Robot Bomb Stabilizer */
-
Josiox joined the community
-
You're asking a few different questions, so let me clarify how Steam views "devices". The machine ID that's by default generated from your account name is sent in the logon message. To my knowledge, it isn't really used for anything except maybe family sharing. The "DESKTOP-xxxxxx" names you see on your authorized devices page are controlled by the machineName you supply to the logOn() method. If you don't provide one, then it's auto-generated as you see. A "new device" for purposes of trading is determined by the machine auth token. If you use a previously-issued machine auth token to log on, then you won't need to provide an email Steam Guard code and it'll be counted as a previously-authorized device for purposes of trading restrictions. Logging in with username + password is what generates a new entry in the authorized devices page. Saving and using a refresh token to login more than once is the same thing as checking the "remember me" box when you log into the Steam client; it's treated as the same session and thus isn't counted as a new device when you log in after the first time. You won't generate new entries on the authorized devices page by reusing a refresh token.
-
Hi, by default steam-user generates machine ID based on account name, however after some time working with this library my steam account has a lot of different "Authorised devices" on steam settings page with names like "DESKTOP-<foobar>". All the time I was using log+pass+shared secret for logon Does machineID affect authorised devices? Does it mean that from Steam perspective every login is performed from different device? Will such behaviour affect steam account in terms of new update related to trade lock from new device? And main question - how can I authorise from same "device" for each logon request? Information from this block https://github.com/DoctorMcKay/node-steam-user?tab=readme-ov-file#machine-auth-tokens can be used for this purpose? How to do the same with authorisation via refresh token?
-
The balance is showing as a negative number.
HypeLevels replied to miaomiaomiao's topic in node-steam-user
The reason this is happening is because balance is a 32 bit integer. Ur balance goes above the 32 bit integer limit so what it is doing is when it overflows over the INT_MAX (2147483647) it "resets" to INT_MIN (-2147483647) and adds the remainder of Balance - INT_MAX which is (15012313) back to INT_MIN which makes it -2132471336. Just use balance64 and you should be good but if you NEED to use balance you can just do balance + 2 + 2 * INT_MAX -
Currently I use steam-session with platform type SteamClient in order to get a refreshToken that I then pass to logOn but that causes my application to crash with the following message: RangeError: "length" is outside of buffer bounds at Buffer.proto.utf8Write (node:internal/buffer:1066:13) at Op.writeStringBuffer [as fn] (C:\Users\John\Desktop\steam\node_modules\protobufjs\src\writer_buffer.js:61:13) at BufferWriter.finish (C:\Users\John\Desktop\steam\node_modules\protobufjs\src\writer.js:453:14) at Function._encodeProto (C:\Users\John\Desktop\steam\node_modules\steam-user\components\03-messages.js:344:29) at SteamUser._send (C:\Users\John\Desktop\steam\node_modules\steam-user\components\03-messages.js:432:29) at SteamUser._sendLogOn (C:\Users\John\Desktop\steam\node_modules\steam-user\components\09-logon.js:347:8) at SteamUser.<anonymous> (C:\Users\John\Desktop\steam\node_modules\steam-user\components\02-connection.js:116:7) at C:\Users\John\Desktop\steam\node_modules\steam-user\components\classes\HandlerManager.js:35:12 at Array.forEach (<anonymous>) at HandlerManager.emit (C:\Users\John\Desktop\steam\node_modules\steam-user\components\classes\HandlerManager.js:34:12) { code: 'ERR_BUFFER_OUT_OF_BOUNDS' This happens before loggedOn event is triggered as well. Edit: This is caused by Node 22.7.0, upgrade to 22.8.0 or downgrade to LTS
-
zhangdashan started following node-steam How to decode family PIN
-
What is its API? How to use refreshToken to obtain decoding after logging in? This is another open source code written in c++ https://github.com/Ne3tCode/SPPRTool/
-
zhangdashan joined the community
-
TheMaster started following Current Ratelimits For get inventory contents