Продажа из программы
На сайте это делает расширение в браузере. Программа делает то же сама, со своим доступом к Steam.
- Прочитайте инвентарь с
https://steamcommunity.com/inventory/<steam_id>/730/2?l=english&count=2000и загрузите все страницы. - Выставьте предметы со своими ценами.
- Получите продажи. Когда в
actionsпродажи естьsend, создайте в Steam оффер на трейд-ссылку покупателя. Он отдаёт этот один предмет и ничего не просит взамен. - Запишите оффер сразу после создания и только потом подтвердите его в Steam Guard.
- Отправляйте отчёт каждые три минуты, пока есть продажи, даже пустой. Сделка движется только по этим отчётам.
import os
import time
import requests
API = "https://api.rockvel.store/v1"
KEY = {"Authorization": f"Bearer {os.environ['ROCKVEL_KEY']}"}
def follow_sales():
sales = requests.get(f"{API}/trades/open", headers=KEY).json()
for sale in sales:
if "send" in sale["actions"]:
# Your own code: make the offer on Steam.
offer_id = make_offer(sale["trade_url"], sale["asset_id"])
requests.post(f"{API}/orders/{sale['id']}/offer", headers=KEY, json={"offer_id": offer_id})
confirm_in_steam_guard(offer_id)
# Your own code: read IEconService and keep what concerns these sales.
requests.post(f"{API}/trades/reports", headers=KEY, json=read_steam(sales))
while True:
follow_sales()
time.sleep(180)Что учитывается в отчёте
Офферы берите из IEconService/GetTradeOffers, обмены из IEconService/GetTradeHistory. Оффер засчитывается продаже, только если он отдаёт этот предмет этому покупателю, ничего не просит взамен и создан после продажи. Обмен должен отдать этот предмет этому покупателю после продажи. Если Steam прочитать не удаётся, сообщите об этом в problem: молчание останавливает сделки.
Состояния оффера
9 | Ждёт Steam Guard: оффер записан. |
|---|---|
2 | Активен: покупатель может принять, сделка переходит в sent. |
3 | Принят: сделка переходит в protected. |
7 | Отклонён: деньги возвращаются покупателю. |
6, 10 | Отменён вами или Steam Guard: деньги возвращаются покупателю. |
5 | Истёк: деньги возвращаются покупателю. |
1, 4 | Недействителен или встречный: деньги возвращаются покупателю. |
8 | Предмета нет: деньги возвращаются покупателю. |
Статусы обмена
0, 1 | В процессе: пока ничего не меняется. |
|---|---|
2, 3 | Завершён: сделка переходит в protected. |
4 | Не удался: деньги возвращаются покупателю. |
12 | Откачен: деньги возвращаются покупателю, продавец блокируется навсегда. |
Любое другое число отправляет сделку к человеку, и до его решения деньги не двигаются.