Προς το περιεχόμενο

'BAD_REQUEST' [10004] επιστρέφει το private/user-balance του Crypto.com Exchange API v2


mountzou

Προτεινόμενες αναρτήσεις

Δουλεύω με το Exchange API v2 του Crypto.com σε Python για να τραβήξω κάποια δεδομένα από το portfolio μου. Ενώ τα request γίνονται authenticated και επιστρέφουν κανονικά δεδομένα για το endpoint /get-order-history, όταν αλλάζω το endpoint σε /user-balance με τις ίδιες ακριβώς παραμέτρους επιστρέφει σφάλμα 'BAD_REQUEST' με κωδικό [10004].

def get_order_history():
    req = {
        "id": 2,
        "method": "private/get-order-history",
        "api_key": API_KEY,
        "params": { },
        "nonce": int(time.time() * 1000)
    }

    paramString = ""

    if "params" in req:
        for key in req['params']:
            paramString += key
            paramString += str(req['params'][key])

    sigPayload = req['method'] + str(req['id']) + req['api_key'] + str(req['nonce'])

    req['sig'] = hmac.new(
        bytes(str(SECRET_KEY), 'utf-8'),
        msg=bytes(sigPayload, 'utf-8'),
        digestmod=hashlib.sha256
    ).hexdigest()

    order_history = requests.post(BASE_URL + 'private/get-order-history', json=req, headers={'Content-Type': 'application/json'})

    return json.loads(order_history.text)

order_history = get_order_history()

Ο κώδικας που έχω παραθέσει παραπάνω με το HTTP POST request δουλεύει κανονικά, επιστρέφει τόσο 200 success όσο και δεδομένα. Ωστόσο, όταν αλλάζω την μέθοδο σε private/user-balance, αρνείται πεισματικά να παίξει.

Επικοινώνησα με support μπας και, δεν πήρα καμία απάντηση, με παρέπεμψαν στο documentation, το οποίο με την σειρά του δεν λέει και κάτι παραπάνω από αυτό που έχω υλοποιήσει. Έχει καταφέρει κανείς να συνδεθεί επιτυχώς με το συγκεκριμένο API ;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασα να κάνω αλλαγές μήπως και φταίει κάτι τέτοιο, αλλά δεν λειτούργησε. Και από το documentation πάντως δεν προκύπτει κάτι διαφορετικό στο structure, δηλαδή το params είναι κενό, όπως και στο private/get-order-history.

Στιγμιότυπο οθόνης 2023-12-02, 10.22.20 μμ.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Βάζεις στο Postman το παράδειγμα που έχουν, κάνεις export request-response (μαζί με headers) και τους το στέλνεις, κάνοντάς τους ξεκάθαρο τουλάχιστον 2 φορές ότι το request που στέλνεις είναι από τα docs τους και δε δουλεύει. Έτσι, ή θα σε στείλουνε πάλι στα docs, όπου σε αυτήν την περίπτωση είσαι πια βέβαιος ότι έχεις να κάνεις με κλόουν και δυστυχώς θα πρέπει να κάνεις δοκιμές στα τυφλά ελπίζοντας κάτι να δουλέψει, ή θα σου πούνε πώς να χτίσεις σωστά το request.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

14 ώρες πριν, Kercyn είπε

Βάζεις στο Postman το παράδειγμα που έχουν, κάνεις export request-response (μαζί με headers) και τους το στέλνεις, κάνοντάς τους ξεκάθαρο τουλάχιστον 2 φορές ότι το request που στέλνεις είναι από τα docs τους και δε δουλεύει. Έτσι, ή θα σε στείλουνε πάλι στα docs, όπου σε αυτήν την περίπτωση είσαι πια βέβαιος ότι έχεις να κάνεις με κλόουν και δυστυχώς θα πρέπει να κάνεις δοκιμές στα τυφλά ελπίζοντας κάτι να δουλέψει, ή θα σου πούνε πώς να χτίσεις σωστά το request.

Στο reddit και στο Stackoverflow που το έψαξα, προτείνουν workarounds (!!) πάνω στα διάφορα private endpoints του API για παρόμοια προβλήματα που έχουν με το API και τα requests του. Δηλαδή μιλάμε για ένα API που πρέπει να εκτός από γνώσεις να έχεις και φαντασία για να πάρεις απάντηση χαχα. Αν βρώ κάποια άκρη θα ενημερώσω και εδώ το thread, μπας και βοηθήσω και κανέναν άλλο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...