Josiox Posted September 21 Report Share Posted September 21 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 */ Quote Link to comment Share on other sites More sharing options...
Dr. McKay Posted September 21 Report Share Posted September 21 4 hours ago, Josiox said: FS.writeFileSync('steamguard.txt', steamguard); Remove this line. The steam guard value doesn't exist anymore. Quote Link to comment Share on other sites More sharing options...
Josiox Posted September 22 Author Report Share Posted September 22 6 hours ago, Dr. McKay said: Remove this line. The steam guard value doesn't exist anymore. Works now. Thanks. But now have other issue: method manager.on('newOffer', function(offer) do not react on incoming/created offers at all... Quote Link to comment Share on other sites More sharing options...
Josiox Posted September 22 Author Report Share Posted September 22 55 minutes ago, Josiox said: Works now. Thanks. But now have other issue: method manager.on('newOffer', function(offer) do not react on incoming/created offers at all... Fixed with adding "useAccessToken": true to manager parameter list Dr. McKay 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.