matvey151
@matvey151
Web-программист-самоучка

Как запустить бот steam?

Добрый день. Я пишу 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, но Я не знаю как.
Буду благодарен за любую подсказку. Спасибо!
  • Вопрос задан
  • 3303 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fletcher_CT
@Fletcher_CT
Программист, инженер, веб-дизайнер
Для настройки работы такого бота, лучше всего взять за основу уже готовые скрипты ботов от сайтов-рулеток.
В них наглядно видно где и каким образом совершается работа бота.
В данном случае, исходя из ошибки, которую вы скинули, можно сказать то, что настроены не все пути к боту. Где он вообще находится? У вас на компьютере или на сервере? Если находится на сервере, то добавили ли вы к нему аутентификатор steam?
Следует учитывать все.
Поэтому советую скачать скрипт любого сайта-рулетки с использованием бота и посмотреть как он работает и к каким файлам подключается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы