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. As of December 2015, all users who are losing items in a trade must have the Steam Guard Mobile Authenticator enabled, or else the trade will be held for three fifteen days. It's also no longer possible to opt-out of trade confirmations. This means that effectively, all trading bots need a mobile authenticator and need to accept mobile trade confirmations. You don't need an actual physical phone to act as your mobile authenticator, however. Through the efforts of myself and others, you can emulate a mobile authenticator right from node.js, and also accept trade confirmations. Enabling a Mobile Authenticator The Steam Guard Mobile Authenticator provides two-factor authentication security (hereinafter "2FA") for your account, which is more secure than standard email-based Steam Guard. This is done using a "shared secret" which is known to both the Steam servers and to your authenticator. Both sides run this secret through an algorithm along with the current time, which produces a 5-character alphanumeric code. This code is only valid for 30 seconds, and can only be used once. Attempts to reuse a 2FA code (either through the Steam Client or by logging in on steamcommunity.com) will treat the code as incorrect and reject it. For this reason, you can't login more frequently than once in a 30-second period. Enabling 2FA is a three-step process. Link and verify a phone number with your Steam account. You can do this manually from your account page, or programmatically using node-steamstore. Call enableTwoFactor using either node-steam-user or node-steamcommunity. If successful, this will return an object containing a bunch of properties. You should save this entire object. You can call JSON.stringify on it safely to turn it into a string. You'll need the revocation_code in the future if you ever want to disable 2FA. At this stage, 2FA isn't enabled yet. Steam will send you an SMS containing a code which you'll need in step 3. Call finalizeTwoFactor using either node-steam-user or node-steamcommunity. You will need the value of the shared_secret property from the object returned in step 2, and the numeric activation code from your SMS. If successful, your Steam account now has 2FA.Logging in With a Mobile Authenticator If you have 2FA enabled, then for every login you will need to provide a twoFactorCode (unless you're logging in with node-steam-user using a loginKey). You can generate this code using node-steam-totp and your shared_secret which you obtained (and should have saved) when you enabled 2FA. Mobile-Confirming Trades You are now required to confirm all trades in which you lose items. If you don't have 2FA enabled, then these confirmations will go to your email and the trades will be held for fifteen days. If you do have 2FA enabled, then the confirmations must be accepted through Steam's mobile confirmation interface. You can also accept mobile confirmations through node.js. node-steam-tradeoffer-manager doesn't have anything built-in to accept mobile confirmations. This is because mobile confirmations encompass more than just trades -- market listings also require confirmation, and potentially other things in the future. node-steamcommunity can accept your confirmations for you. In order to accept mobile confirmations, you will need the identity_secret (not the shared_secret used for login) from when you enabled 2FA. The best way to do this is to call acceptConfirmationForObject right after each trade offer you send/accept or market listing you create.
  2. Hello, Since the latest update, I receive "Unable to accept offer : Unknown state 2" when receiving a new offer. The trade does go through, it goes to accepted afterwards. But for some reason it always emits "Unknown state 2" aswell. Am I doing something wrong or is this a bug? manager.on('newOffer', function(offer) { console.log("New offer #" + offer.id + " from " + offer.partner.getSteam3RenderedID()); var steamid = offer.partner.getSteamID64(); offer.accept(function (err) { if (err) { console.log("Unable to accept offer: " + err.message); pusherTrigger.trigger('bot_status_ch', 'bot_status', { "message": "offline", "bot": BotID }); } else { steam.checkConfirmations(); console.log("Offer accepted"); } }); });
  3. i am trying to make cluster bot. I wanna have n bot, working in 1 deploy node js app. Can be conflict between session bots?
  4. Hi, I know this is probably a silly question (and probably is in the documentation but my english is not that good), but How could I accept all my sent offers? I mean, I can grab my phone and accept one by one (I have a mobile authenticator for the bots), but how could I automatically accept the sent trade offers. I saw that for 2 factor auth I need to the use the totp (and I still trying to figure out how), but I didn't saw anything about auto accept. Sorry for the silly question.
  5. Hi! I need help with my bot. I want bot to only accept CSGO items but I have no idea where to start. I have read documentation but I can't find any help. Greetings, Turska
  6. If steam-tradeoffer-manager emit unknownOfferSent event this offer will appear in sentOfferChanged?
  7. Hello, Is there a way to know the assetID of the items received before it changes? Right now, I have 1 inventorybot and multiple tradebots. The inventorybot distributes the items to the different tradebots. When I send an item from my inventorybot to the tradebot, my flow is as follows: Flow of inventorybot : send item -> when accepted delete record in DB Flow of tradebot : receive item -> accept -> insert into database This is how I keep track of which items are in which bots. But there is data that only the inventorybot knows about some items, for example where I got the item from (Did I get it from bitskins, opskins or another seller). But that data is lost since I have to delete the record in DB. I would like to update the record instead of deleting and inserting a new one. I have no way to know which item in database I should update after it has been traded to anoter bot. This could be done with a " UPDATE ... WHERE assetid = ..." . But assetID changes after trade, so that is not an option. Am I missing something on how I should do this? Kind regards
  8. Hello, Bot did send trades, but steam was down and bot didn't confirm them Later, when steam cames back, how to confirm all that trades?
  9. Hi there. When I try to start tradeoffer-manager I have fail on login with error CAPTCHA. What is wrong?
  10. Hi, im going to backup my server and also the bot i've made, so i just need to know where it is located, thanks My OS: CentOS 7 node-steam-tradeoffer-manager
  11. I have this code in my offers offers.on('sentOfferChanged', function(offer, oldState) { logger.log("Offer #" + offer.id + " changed: " + TradeOfferManager.getStateName(oldState) + " -> " + TradeOfferManager.getStateName(offer.state)); if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) { offer.getReceivedItems(function(err, items) { if (err) { console.log("Couldn't get received items: " + err); } else { var names = items.map(function(item) { return item.name; }); logger.log("Received: " + names.join(', ')); } }); } }); As of this morning i'm not getting an event when I confirm my trade via my mobile app even though the trade was accepted and the items are now in the bots inventory. Sometimes I will get an err eventually and i'll get this Couldn't get received items: Error: Steam returned unsuccessful response However, most trades I wont get anything. Is this a steam issue? edit: here's my manager setting var offers = new TradeOfferManager({ steam: client, domain: config.domain, language: "en", cancelTime: 300000 }); I assume polling is automatic?
  12. When accept TradeOffer, error occurs "Unknown state 2" Log from my bot: darkwar1234: Logged On darkwar1234: new trade offer from 76561198052220848 darkwar1234: Unknown state 2 darkwar1234: cookies are updated! darkwar1234: trade offer â„–1150955479, status: 3 darkwar1234: trade offer are accepted!Code: offer.accept(function(err){ if(err){ // here console.log(err.message) "darkwar1234: Unknown state 2" self.relogin(err, function(){ self.checkOffer(offer, function(offer){ if(offer.state == 3){ self.acceptOffer(trade, callback); }else if(offer.state == 2){ self.handleOffer(trade, callback); } }); }); return; } self.acceptOffer(offer, callback); });And when I use method TradeOffer.update() it receive undefined if I make offer now or if TradeOffer has status 3 it show error Offer no longer valid. I want to use this method instead getOffer in this part of code: SteamBotManager.prototype.checkOffer = function (offer, callback) { var self = this; self.manager.getOffer(offer.id, function(err, offer){ if(err){ self.relogin(err, function(){ self.checkOffer(offer, callback); }); return; } if(offer.state == 2 || offer.state == 3){ self.log("trade offer â„–"+ offer.id +", status: "+ offer.state); if (typeof(callback) === 'function') { callback(offer); } }else{ self.log("trade offer â„–"+ offer.id +" is no longer valid, status: "+ offer.state +"!"); } }); };
  13. I want/try to start a discussion to collect ideas and experience which is the best way to load user inventories fast and preferably unlimited for web bases item select masks. For myself, I 've just read that one needs a lot of ip addresses to pass as proxy for example as described in this post https://dev.doctormckay.com/topic/176-loadinventory-proxy/ I imagine the following questions ? What are the limits to request inventories (x request per hour, or day) ?should i use a caching strategy (which is recommended, just time based, how long) ?if proxys are the only way is there a recommended hoster, eg.is it possible to request the inventory cross site based with javascript in browser (so that customer client ips are used), iframe, etc.... Are there any other strategys? Hope this post can help others and me to handle this problem.
  14. Hi, I'm currently asking on behalf of my coder who is not really good with English. He has trouble getting items being displayed on the website when the bots received them. The NodeBot is working fine and is able to trade items back and forth with me. Now once I've deposited the items on the bots, I'm trying to get it linked to my website inventory which belongs to mine account when I signed in through steam, showing my "web" inventory which I have deposited with the bots. I read on google about storing it in a database, doing array etc. And something about connecting the Nodebot to the website through socket.io, I'm not familiar with all these as I'm not a coder. Any help would be appreciated. Thanks
  15. Is there a way that I can intentionally make offer.send() returns an error?
  16. Hello there, So I am having poll failure error according to my logs and my bot does nothing after poll failure, even though it accepted the trade offer. Here is the issued logs, {"level":"debug","message":"#1 - Received new offer: - 1146841042","timestamp":"2016-04-10T03:26:01.792Z"} {"level":"debug","message":"#7 - Offer # - 1146841042 accepted from 76561198074956634","timestamp":"2016-04-10T03:26:12.168Z"}{"level":"debug","message":"!! POLL FAILURE ERROR !!: Error: Timeout","timestamp":"2016-04-10T03:26:14.464Z"}
  17. .getReceivedItems sometimes messes up with a 503 error is there anything i can do so that i can retry or make it try again on the 'receivedOfferChanged' condition?
  18. Hello, There is a method isGlitched(). If this method return true how to "reload" the offer to make it "not glitched"? Best wishes, Gleb
  19. offers.on('sentOfferChanged', function(offer, oldState) { logger.log("Offer #" + offer.id + " changed: " + TradeOfferManager.getStateName(oldState) + " -> " + TradeOfferManager.getStateName(offer.state)); if (offer.state == TradeOfferManager.ETradeOfferState.Accepted) { offer.getReceivedItems(function(err, items) { if (err) { console.log("Couldn't get received items: " + err); } else { var names = items.map(function(item) { return item.name; }); console.log("Received: " + names.join(', ')); } }); } }); I'm trying to get the steam id from the partner object but the steamId object only contains 4 properties. partner: SteamID { universe: 1, type: 1, instance: 1, accountid: xxx }, Is there a way to get the steamId from this?
  20. I need the app_data.def_index of the items i’m receiving or giving in a tradeoffer, but many times app_data is missing. I managed to get around this by editing checkNeededDescriptions()in classes/TradeOffer.js so it ignores the if(!manager._hasDescription(item))part and pushes the item anyway but i don’t think this is the right solution. Any help? I'm trying to get the def_index in a wrong way? Thanks
  21. Hello, Dr. McKay I keep getting [Error: Steam returned unsuccessful response] when making getReceivedItems. But when I open receipt link in the browser(http://steamcommunity.com/trade/<TRADE ID>/receipt) it works: Best wishes, Gleb
  22. offer.getEscrowDuration(steamid,usertoken, function(err, their,main){get callback(null, parseInt(theirs[1], 10), parseInt(mine[1], 10)); ^ TypeError: callback is not a function at String.TradeOfferManager._escrowDurationResponse (D:\STARTBOT\node_modules\steam-tradeoffer-manager\lib\index.js:214:3) at Request._callback (D:\STARTBOT\node_modules\steamcommunity\components\http.js:62:14) at Request.self.callback (D:\STARTBOT\node_modules\request\request.js:200:22) at emitTwo (events.js:100:13) at Request.emit (events.js:185:7) at Request.<anonymous> (D:\STARTBOT\node_modules\request\request.js:1041:10) at emitOne (events.js:95:20) at Request.emit (events.js:182:7) at Gunzip.<anonymous> (D:\STARTBOT\node_modules\request\request.js:968:12) at emitNone (events.js:85:20) and function offer.getEscrowDuration(function(err, daysTheirEscrow, daysMyEscrow) { processed in 3 seconds,how can it accelerate ?
  23. Hi there. I have problem with sending offer from my bot using tradeoffer-manager, when I try to send some offer only with my items I have status pending. On steam in sent offers I see 'Awaiting for mobile confirmation'. What is wrong? I have turned on 2FA and i'm logged in steam with my bot. My code: var offer = manager.createOffer("[U:1:123456789]"); offer.addMyItem({"appid": 730, "contextid": 2, "assetid": "1234567890"}); offer.send("Lorem ipsum...", "12345678", function(err, status) { if (err) { console.log(err); } else { console.log("Offer #" + offer.id + " " + status); } });
×
×
  • Create New...