Задать вопрос
@Ninja2567

DmarketAPI Ошибка получения ордеров: 404, {"Code":"Not Found","Message":"Not Found"} Как исправить?

Код автоматически получает список активных ордеров (заказов на покупку или продажу предметов) с платформы DMarket через их API, а затем удаляет каждый из них. Он использует ваши API-ключи для авторизации, создаёт подпись для безопасного запроса, отправляет запрос на сервер DMarket, чтобы получить список ордеров, и, если они есть, по очереди удаляет их

Но после запуска кода : Ошибка получения ордеров: 404, {"Code":"Not Found","Message":"Not Found"}, ознакомился с документацией DmarketAPI, вроде все правильно но код не работает

import time
import json
import requests
from nacl.bindings import crypto_sign

#  API ключи
PUBLIC_KEY = ""
SECRET_KEY = ""

ROOT_API_URL = "https://api.dmarket.com"


def sign_request(method, path, body=""):
    nonce = str(int(time.time()))
    string_to_sign = method + path + body + nonce
    signature = crypto_sign(string_to_sign.encode(),
                            bytes.fromhex(SECRET_KEY))[:64].hex()
    headers = {
        "X-Api-Key": PUBLIC_KEY,
        "X-Request-Sign": f"dmar ed25519 {signature}",
        "X-Sign-Date": nonce,
        "Content-Type": "application/json"
    }
    return headers


def get_user_orders():
    path = "/marketplace-api/v1/user-orders"
    headers = sign_request("GET", path)
    response = requests.get(ROOT_API_URL + path, headers=headers)
    if response.status_code == 200:
        return response.json().get("orders", [])
    else:
        print(
            f"[!] Ошибка получения ордеров: {response.status_code}, {response.text}")
        return []


def delete_order(order_id):
    path = f"/marketplace-api/v1/orders/{order_id}"
    headers = sign_request("DELETE", path)
    response = requests.delete(ROOT_API_URL + path, headers=headers)
    if response.status_code == 200:
        print(f"[-ORDER] Удалён ордер: {order_id}")
    else:
        print(
            f"[!] Ошибка удаления ордера {order_id}: {response.status_code}, {response.text}")


def main():
    print("\n Получение и удаление ордеров...")
    orders = get_user_orders()
    if not orders:
        print("Нет активных ордеров.")
        return
    for order in orders:
        order_id = order.get("orderId")
        if order_id:
            delete_order(order_id)


if __name__ == "__main__":
    main()
  • Вопрос задан
  • 32 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

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