Подключение WAX ExpressTrade к своему сайту

feed4rz
feed4rz
Sep 2, 2018 · 4 min read

В данной инструкции мы будем использовать:

Также, данная инструкция подразумевает, что вы знакомы с терминологией разработки gambling проектов под Steam Web API.

Немного о модулях

opskins-trade-manager представляет собой обертку для opskins-trade-interface, с возможностью автоматического пуллинга изменений в последних 100 трейдофферах, а также со своей иерархией классов и методов. Больше всего он как раз подходит под обработку трейд офферов, а остальные методы trade-opskins-api реализованы в чистом виде в opskins-trade-interfacе.

Создание аккаунта бота

Естественно, для подключения ExpressTrade нам понадобится аккаунт Opskins для бота, его можно зарегистрировать по ссылке.

После того, как мы зарегистрировали аккаунт, нам понадобится подключить двух-факторную аутентификацию, а в дальнейшем получить apikey для работы с API Opskins. Не забудьте сохранить секретный ключ двух-факторной аутентификации, иначе вы не сможете совершать обмены автоматически.

Также, не стоит забывать про трейд-ссылку. Если депозит на ваш сайт будет осуществляться через нее, то стоит сгенерировать ее на странице настроек. Настоятельно рекомендую включить опцию “Allow Two Factor Code Reuse for Sending & Accepting Offers”, иначе вы сможете отправлять только 1 трейд раз в 30 секунд.

Кстати, а помните как нам нужно было создавать множество аккаунтов Steam, чтобы уместить больше 1000 вещей CSGO? Так вот, теперь это — в прошлом! В ExpressTrade аккаунта Opskins можно хранить неограничное количество вещей!

Пример использования opskins-trade-manager

Рассмотрим небольшой пример для большего понимания.

Создав нашего бота и залив на него, скажем, 100 предметов, мы хотим сделать раздачу вещей в нашей группе ВК (Facebook, Steam, тд. )! Пользователи оставляют в комментариях свои трейд ссылки и первые 100 получат по одной вещи.

Собственно, код:

Рассмотрим пошагово что происходит в коде:

  • Загружается инвентарь бота методом IUser/GetInventory с параметром app_id = 1 (VGO) и RECURSIVE = true (позволяет загрузить весь инвентарь, а не только первые 100 предметов)
  • Выбирается случайная вещь из всего списка
  • К трейду прикрепляется сообщение “Привет, ты выиграл в раздаче вещей!”
  • Все параметры подаются на метод ITrade/SendOffer и трейд отправляется

Легко и просто.

Методы ввода/вывода вещей

Как мы знаем, на сайтах-гэмблингах есть 2 классических способа депозита вещей на сайт:

  • Через трейд-ссылку. Вещи напрямую отправляются под трейд-ссылке на аккаунт вашего бота на Opskins.
  • Посредством отправки трейда пользователю по его трейд-ссылке (или без нее).

Ну, а вывод уже возможен только путем отправки трейда пользователю. Я лично рекомендую использовать второй способ, так как он позволяет кастомизировать окно депозита, добавив суммирование цен вещей и тд. Однако, для наглядности, в данной инструкции мы будем использовать первый способ.

Депозит

И так, наконец, приступим непосредственно к кодингу. Начнем, очевидно, с депозита вещей на сайт. Как мы помним, юзер сам переходит по трейд ссылке нашего бота и отправляет трейд, а нам лишь нужно его обработать и принять либо отклонить.

Инициализируем класс Manager:

Создаем Listener на Event “offer_new_received”, обрабатываем трейд и принимаем его:

Не забываем сохранить id полученных предметов, чтобы в дальнейшем их можно было включить в трейд на вывод. Кстати, id не изменяется в процессе обмена, нежели в Steam, что очень удобно!

Описание объекта offer доступно в документации Opskins ExpressTrade.

Вывод

Для вывода нам потребуется освоить метод ITrade/SendOfferToSteamId или метод ITrade/SendOffer. Первый позволяет отправлять трейды по SteamId пользователя, который вы могли получить при его авторизации через Steam. Второй же требует uid и token из трейд-ссылки пользователя и используется, обычно, в случаях, если пользователь сделал профиль приватным в настройках ExpressTrade.

Пример вывода вещей на steam_id:

Получение инвентаря и цен на предметы

Помните как сложно было найти хороший парсер цен без накрученных предметов? Так вот, теперь это в прошлом! Opskins сам для вас выдает рекомендуемые цены предметов и сразу включает их при загрузке инвентаря. Однако, загрузка инвентаря усложнилась по сравнению с Steam. Теперь предметы разбиты по 100 штук на страницу, то есть, для инвентаря в 1353 вещей нужно будет сделать 14 (!!!) запросов. Для начинающих разработчиков это может вызвать массу вопросов, поэтому в модуле opskins-trade-manager (и родительском opskins-trade-interface) предусмотрена опция RECURSIVE со значением true или false. При true, модуль автоматически загружает все имеющиеся страницы, однако, это может занять некоторое время. Я лично рекомендую реализовать обычную пагинацию, чтобы лишний раз не заставлять пользователя долго ждать загрузки.

Загрузка инвентаря с помощью opskins-trade-manager методом ITrade/GetUserInventoryFromSteamId:

inventory будет массивом вещей.

Итог

И так, мы научились базовым вещам при работе с WAX ExpressTrade.

Весь код данной инструкции можно найти по ссылке, а также он представлен ниже:

Очень рекомендую ознакомиться полностью с документацией, а также внести свой вклад в развитие opskins-trade-manager и opskins-trade-interface, что поможет вам больше разобраться в trade-opskins-api.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade