Добрый день. Я пишу steam бота, который будет получать, то что ему дают и по событию отдавать.
Раньше со steam не работал. node.js для меня тоже в новинку.
Я создал аккаунт steam положил на него денег, установил мобильное приложение ( steamGuard ) на телефон.
Подождал месяц. Все обмены разрешены.
Теперь нужно запустить бота.
node bot.js
Запускаю файл bot.js с таким кодом:
/* START EDITING */
// Put your 64-bit SteamID here so the bot can accept your offers
var admin = 'мой SteamID 64-bit';
var logOnOptions = {
account_name: 'мой логин',
password: 'мой пароль'
};
var authCode = ''; // Code received by email
/* STOP EDITING */
var fs = require('fs');
var crypto = require('crypto');
var Steam = require('steam');
var SteamWebLogOn = require('steam-weblogon');
var getSteamAPIKey = require('steam-web-api-key');
var SteamTradeOffers = require('steam-tradeoffers');
var sentryFileName = 'sentry'; // steam guard data file name
try {
logOnOptions.sha_sentryfile = getSHA1(fs.readFileSync(sentryFileName));
} catch (e) {
if (authCode !== '') {
logOnOptions.auth_code = authCode;
}
}
// if we've saved a server list, use it
if (fs.existsSync('servers')) {
Steam.servers = JSON.parse(fs.readFileSync('servers'));
}
var steamClient = new Steam.SteamClient();
var steamUser = new Steam.SteamUser(steamClient);
var steamFriends = new Steam.SteamFriends(steamClient);
var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
var offers = new SteamTradeOffers();
steamClient.connect();
steamClient.on('connected', function() {
steamUser.logOn(logOnOptions);
});
steamClient.on('logOnResponse', function(logonResp) {
if (logonResp.eresult === Steam.EResult.OK) {
console.log('Logged in!');
steamFriends.setPersonaState(Steam.EPersonaState.Online);
steamWebLogOn.webLogOn(function(sessionID, newCookie) {
getSteamAPIKey({
sessionID: sessionID,
webCookie: newCookie
}, function(err, APIKey) {
offers.setup({
sessionID: sessionID,
webCookie: newCookie,
APIKey: APIKey
});
handleOffers();
});
});
}
});
function getSHA1 (bytes) {
var shasum = crypto.createHash('sha1');
shasum.end(bytes);
return shasum.read();
}
И он мне выдает такую ошибку:
events.js:154
throw er; // Unhandled 'error' event
^
Error: Disconnected
at SteamClient._disconnected (/мой путь/node_modules/steam/lib/steam_client.js:186:24)
at emitOne (events.js:90:13)
at Connection.emit (events.js:182:7)
at TCP._onclose (net.js:477:12)
мой@мой:~/мой путь$ node bot.js
events.js:154
На сколько Я понимаю, мне должно приходить на почту authCode. Но этого не происходит, так как у меня стоит приложение steamGuard. Наверно этот код должен работать с моим файлом ssfn, но Я не знаю как.
Буду благодарен за любую подсказку. Спасибо!