Jump to content
McKay Development

Search the Community

Showing results for tags 'node-steam-tradeoffer-manager'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News & Announcements
    • Releases & Updates
  • Help & Support
    • General
    • Guides
    • node-steam-user
    • node-steamcommunity
    • node-steam-tradeoffer-manager
    • node-steam-session

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Location


Interests

  1. Hello, I was reading over the documentation for both node-steamcommunity and node-steam-tradeoffer-manager. According to the steam community documentation community, polling is deprecated and may be removed. In the tradeoffer-manager documentation you use polling there. Are these two different types of polling? Would I be able to continue to use tradeoffer-manager polling or should I move over to "acceptAllConfirmations" from the community module?
  2. Within the past few days, a number of my trading bots have failed to accept mobile confirmations for any of their trades. After some investigating, Jessecar96's SDA reveals a relatively blank screen on the confirmations window (left in attached SS), in contrast to the textually definitive "Nothing to confirm..." (right in attached SS) Trades are able to be sent, received and accepted, however any trades involving items leaving the accounts' inventories, will be left in a ceaseless state of awaiting confirmation. Accounts started receiving this 'Steam Mobile Authentication Blacklist' status a few days ago, when the bots were attempting to confirm multiple large trade offers at once (3x 25,000 item offers). Today, my primary trading bot became blacklisted when attempting to confirm many smaller offers simultaneously. I suspect that Valve implemented a new sensitive rate limiter to users/bots attempting to authenticate their trades. For now, I'm still able to trade perfectly fine on other accounts connected to the same phone number. Clarification on the restricted authentication process would be helpful, or a workaround that won't trigger Valve's discrete blacklisting services. A substantial quantity of items are now locked on these blacklisted accounts. Thanks for you help
  3. I'm using the following code but the 'newOffer' event is never being called and according to the docs this only works if polling is enabled, which should be. What am I doing wrong? var steamuser = require('steam-user'); var steamtotp = require('steam-totp'); var trademanager = require('steam-tradeoffer-manager'); var SteamCommunity = require('steamcommunity'); var data = [ { username:'', password:'', shasec:'/XqviM=', shacon:'++3t4fpJI=' }, { username:'', password:'', shasec:'=', shacon:'+P+kKyvfYk=' } ]; var client = []; var manager = []; var community = []; var initializeClients = function(data) { for (var index in data) { initializeClient(index); }; }; var initializeClient = function(index) { var account = data[index]; community[index] = new SteamCommunity(); client[index] = new steamuser(); manager[index] = new trademanager({ "steam": client[index], "community": community[index], "language": "en" }); console.log('[Account] [', account.username,'] is logging on'); client[index].logOn({ 'accountName': account.username, 'password': account.password, 'twoFactorCode': steamtotp.generateAuthCode(account.shasec) }); client[index].on('loggedOn', function() { console.log('[Account] Success!'); }); client[index].on('webSession', (sessionid, cookies) => { manager[index].setCookies(cookies, function(err){ console.log('API Key retrieved'); }); community[index].setCookies(cookies); community[index].startConfirmationChecker(15000, account.shacon); console.log('webSession ID: ' + sessionid); }); client[index].on('newOffer', function(offer, oldState) { console.log('[Account] [', account.username,'] has a newly received offer!'); }); }; initializeClients(data); Edit: I removed the second setCookies as it was not needed, also added an error check on setCookies but it does not throw any errors.
  4. Hello, How could I cancel outgoing offers within 5 minutes, and incoming overs in 90 seconds? I know how the sent offers cancel time work but I want them to be different. How can I do this? Thanks.
  5. How to use skipStateUpdate? Can you give one example from "offer.accept" to "offer.skipStateUpdate" please?
  6. I have a basic bot i created and would like to know how to beable to separate craftable item from uncraft. and the Documentation on it so i know what i am doing
  7. What steam Bot Features Require the steam Api Key and how do i put it into the steam bot
  8. I am having a weird issue with large offers (100+ keys). It seems that Steam takes progressively longer time to accept or confirm an offer. For example, 4 keys take 3 seconds to confirm, 50 keys take 20 seconds, and 100+ just times out after 30 seconds. If the bot receives keys, the time delay happens in 'https://steamcommunity.com/tradeoffer/offerid/accept'and returns error 500 after 30 seconds. When the bot gives keys, the time delay happens in Community.respondToConfirmation() https://steamcommunity.com/mobileconf/ajaxop and returns "success: false" after 30 seconds. What's even weirder is that the next request to fetch active offers is also delayed by about 20 seconds or times out with error 500 too. This doesn't seem like a rate limit issue, as I added generous delays between requests, for example confirming only after 4 seconds. And the delay also clearly depends on the number of items in the offer. confrimationChecker is not active, and all requests are processed strictly sequentially. Anyone experienced such an issue? What could be the problem here? Any ideas?
  9. I'm having some problems with this - not a big deal but I'd still like to know. Somehow some cards I am receiving in a trade don't have a market_hash_name. As far as I know all cards are marketable, so how is it possible that it doesn't have a market_hash_name? Language is set if that matters Edit: Language is only needed for descriptions right? I'd rather not use it because of all the descriptions it'll load but am not sure if that's actually how it works
  10. When i send a trade offer i want to know when and if it is accepted or declined. Is this possible and how?
  11. ERROR "uri": "https://steamcommunity.com/inventory/" + userID. getSteamID64() + "/" + appID + "/" + contextID, ^ TypeError: Cannot read property 'getSteamID64' of null My code function sendRec(steamID, amount){ if (!amount) { var amount = 1; } if (amount == 0) { console.log("User didn't provide a correct amount!"); return; } manager.getUserInventoryContents(steamID, 440, 2, true, function (err, inventory){ if (err) { console.log(err); } else { var scrap = inventory.filter(function (item) { return item.name == "Scrap Metal" }); var refined = inventory.filter(function (item) { return item.name == "Refined Metal" }); var NeededS = amount * 3 var NeededR = amount / 3 if (scrap.length === 0 && refined.length === 0){ client.chatMessage(steamID, "It seems you don't have enough scrap."); return; } else if (amount > NeededS && amount > NeededR) { client.chatMessage(steamID, "You don't have enough scrap. You'll need " + left + " more scrap metals."); return; } else if (amount <= NeededS || amount <= NeededR) { manager.getInventoryContents(440, 2, true, function (err, inventory){ if (err) { console.log(err); } else { var pool = inventory.filter(function (item) { return item.name == "Reclaimed Metal" }); // Let the user know we don't have any if (pool.length === 0) { client.chatMessage(steamID, "I don't have available. Sorry!"); return; } else if (amount > pool.length) { console.log("User asked for more than my backpack."); client.chatMessage(steamID, "I only have " + pool.length + " available. Sorry!"); return; } else if (amount <= pool.length) { // Start a new trade offer var trade = manager.createOffer(steamID); // Add what we should to the current trade console.log("Adding " + amount + " rec."); if (scrap.length < NeededS) { if (Number.isInteger(NeededR) == false){ return; } else { console.log("User doesn't have enough scrap. Sending REF OFFER!!"); //USER ITEMS for (let i = 0; i < NeededR; i++) { trade.addTheirItem(refined[i]); } //BOT ITEMS for (let i = 0; i < amount; i++) { trade.addMyItem(pool[i]); } } } else { console.log("User have enough scrap. Sending SCRAP OFFER!!"); //USER ITEMS for (let i = 0; i < NeededS; i++) { trade.addTheirItem(scrap[i]); } //BOT ITEMS for (let i = 0; i < amount; i++) { trade.addMyItem(pool[i]); } } trade.setMessage("Here is your " + amount + " reclaimed metals"); trade.send(function(err, status) { if (err) { console.log(err); return; } else if (status == 'pending') { console.log("Offer " + trade.id + "have been sent."); community.startConfirmationChecker(15 * 1000, config.identity); client.chatMessage(steamID, "Processing."); client.chatMessage(steamID, "Offer Sent!! Check your trade offer by here https://steamcommunity.com/tradeoffer/" + trade.id + "/."); } }); } } }); } } }) }
  12. I can't seem to find how to get the quality of an item in my/their offer. If I could actually just get all of the offer item variables that would be much appreciated. Thanks!
  13. I have this code to get the items of a specific user, but it should work for every user in the world, so i want to use a variable instead of hardcoding the steamID64 into it, but i just can't get it to work var qqdata = steamID64; // the steamid64 of the user i want to get the inventory from const offer = manager.createOffer + qqdata; offer.getPartnerInventoryContents(730, 2, (err, inventory) => { if (err) { console.log(err); } else { for (var i = 0; i < inventory.length; i++) { setTimeout(function (i) { var name = "'" + inventory[i].market_hash_name + "'"; var image = "'" + inventory[i].icon_url + "'"; var sql = "INSERT INTO `inventorys`.`" + qqdata + "` (name, icon_url) VALUES (" + name + ", " + image + ")"; con.query(sql, function (err) { if (err) { console.log(err); } }); }, 10 * i, i); } } });
  14. node_modules\steam-tradeoffer-manager\lib\classes\TradeOffer.js:173 items.forEach(function(item) { ^ TypeError: items.forEach is not a function Got that error. My code manager.getInventoryContents(440, 2, true, function (err, inventory){ if (err) { console.log(err); } else { // Filter out all the crates var pool = inventory.filter(function (item) { return item.name == "Reclaimed Metal" }); // Let the user know we don't have any if (pool.length === 0) { client.chatMessage(steamID, 'I don\'t have available. Sorry!'); return true; // Give up } // Let the user know we don't have enough else if (amount > pool.length) { console.log('User requested '+amount+' of I only have '+pool.length+' available.'); client.chatMessage(steamID, 'I only have '+pool.length+' crates of series available. Sending a trade offer with all crates of this series.'); } // Start a new trade offer var trade = manager.createOffer(steamID); // Add what we should to the current trade console.log('Adding '+ amount +' rec '); for (let i = 0; i < amount; i++) { trade.addMyItems(pool[i]); } // Send the offer off to Steam with a cute message trade.send(); } });
  15. Hi, so I want to make a bot that will send trade offers with specific items already selected on my website to a user. So the bot will ask for that user items bot will not give any from own inventory. I guess I have to do something with this code but I have not idea what. var offer = manager.createOffer("https://steamcommunity.com/tradeoffer/new/?partner=157268861&token=N_0bQbD4"); offer.addMyItems(inventory); offer.setMessage("Here, have some items!"); offer.send(function(err, status) { if (err) { console.log(err); return; } if (status == 'pending') { // We need to confirm it console.log(`Offer #${offer.id} sent, but requires confirmation`); community.acceptConfirmationForObject("identitySecret", offer.id, function(err) { if (err) { console.log(err); } else { console.log("Offer confirmed"); } }); } else { console.log(`Offer #${offer.id} sent successfully`); } }); So this code, send items from "our" / bot inventory, but I need to send a trade offer with items from a specific user from steam and then he has to accept it.
  16. I used to know a little in this area but i have create my steam bot and forgot how to do it and wandering how to make a trade offer that the bot will generate to send to the user. If there is any documentaion on it Please let me know so i can learn more about this area of the js bot P.S. Thanks in advance
  17. Hey! I'm kinda new to node, and to async programming at all. So I'm sending multiple trade offers with a for loop and Im getting a null offer.id on them. I understood that I have to do a callback but I don't know how. Can you please tell me how to do a callback on the offer.send function. Thanks in advance!
  18. this is my code manager.on('newOffer', (offer) => {console.log(offer.itemsToRecieve.lenght);}); i'm trying to get itemsToRecieve lenght but it logs undefined. I can get itemsToGive lenght but i cant get itemsToRecieve lenght.
  19. var trade = manager.createOffer(steamid); trade.setMessage('ID:' + drop.id + ', Item:' + drop.market_hash_name + ', Steam ID:' + steamid + ', token:' + tradetoken); trade.setToken(tradetoken); trade.addMyItem(drop); console.log(trade) return: TradeOffer { partner: SteamID { universe: 1, type: 1, instance: 1, accountid: 389643249 }, id: null, message: 'ID:21851, Item:Baseball cap, Steam ID:76561198349908977, token:fGUAlI2j', state: 1, itemsToGive: [ { id: '1234567890123456789', //steamid assetid: '1234567890123456789', //steamid appid: 578080, contextid: '2', amount: 1 } ], itemsToReceive: [], isOurOffer: true, created: null, updated: null, expires: null, tradeID: null, fromRealTimeTrade: false, confirmationMethod: null, escrowEnds: null, rawJson: '' } trade.send(function (err, status) { if (err) { logger.error('Bank sendTrade error trade.send'.blue + err); return; } if (status == "sent" || status == "pending") { ... } }) trade.send return error: There was an error sending your trade offer. Please try again later. (26) This error only for PUBG items. CS GO and Dota send without problems. I noticed that the items have a unique id that is 8 characters longer than VS GP and STEAM How to solve this problem? Thank you in advance for your help
  20. Hi. How can I restrict the input of the trade link if I want to save it for each user via my website? For example, if instead of the trade link I put google.com, if I send a trade, it will give me this error: throw new Error("Unknown SteamID input format \"" + input + "\""); ^ Error: Unknown SteamID input format "google.com"Any idea on how to stop this from happening?
  21. Sorry for my English. Today one of the proxy stopped working, I had to buy a new one. I sent the test trade to bot, and it accept trade immediately. The difference with the old ip is very noticeable, before bot accept trades for 20-40 seconds. I suspect that Steam imposes sanctions on the bot for exceeding the number of requests and translates it with a slow mode. Two options come to mind immediately: limit the number of requests or change the proxy once per hour. But I'm not sure that a proxy change will help. In this regard, questions. 1. How to avoid sanctions? 2. What is the limit of requests to not get slow mode? I hope that you can help with information and I can give it to the my programmer.
  22. I run a couple of Steam accounts, but there are too many requests and I get restrictions. Maybe someone knows if I have several IP addresses on the VDS, how can I start the bot from a certain IP address?
  23. I have a problem restoring cookies after a Bot looses its webSession. I call SteamUser.webLogOn but don't get an webSession callback at all. Currently I have 3 Bots running parallel on the same host. After about 1-2 days (sometimes even 7 days!) one of the three won't get a webSession ever again. The other 2 still run great and webSession fires normally for them. I setup a cronJob which refreshes the Login and calls webLogOn every hour and I also call it on sessionExpired. I logged the client error output but it won't throw any error. Code: https://pastebin.com/jYaDE45x Log: 26-07-2017 21:23:05: STEAMBOT Steam session expired: xx - Error: Not Logged In 26-07-2017 21:23:05: STEAMBOT Refreshing Bot Login - xxxx - xx last try: 1385.8219997882843s ago 26-07-2017 21:23:05: STEAMBOT calling webLogOn - xxxx - xx isLoggedIn=false 27-07-2017 00:00:00: STEAMBOT Refreshing Bot Login - xxxx - xx last try: 9414.178000211716s ago 27-07-2017 00:00:00: STEAMBOT calling webLogOn - xxxx - xx isLoggedIn=false 27-07-2017 03:00:00: STEAMBOT Refreshing Bot Login - xxxx - xx last try: 10799.992999792099s ago 27-07-2017 03:00:00: STEAMBOT calling webLogOn - xxxx - xx isLoggedIn=false 27-07-2017 06:00:00: STEAMBOT Refreshing Bot Login - xxxx - xx last try: 10800.00100016594s ago 27-07-2017 06:00:00: STEAMBOT calling webLogOn - xxxx - xx isLoggedIn=false
×
×
  • Create New...