Tôi đang cố gắng sử dụng Python để truy cập vào API giao dịch tại poloniex.com, một trao đổi tiền điện tử. Để thực hiện điều này, tôi phải tuân theo toa này:Tôi làm cách nào để ký yêu cầu POST bằng HMAC-SHA512 và thư viện yêu cầu Python?
Tất cả các cuộc gọi đến các API giao dịch được gửi qua HTTP POST để https://poloniex.com/tradingApi và phải có các tiêu đề sau:
Key - chìa khóa API của bạn.
Dấu - Dữ liệu POST của truy vấn được ký bằng "bí mật" của khóa theo phương thức HMAC-SHA512.Ngoài ra, tất cả truy vấn phải bao gồm thông số POST "nonce". Tham số nonce là một số nguyên phải luôn luôn lớn hơn nonce trước đó được sử dụng.
Đây là những gì tôi có cho đến nay. Vấn đề hiện tại của tôi là tôi không biết làm thế nào để biên dịch các POST URL để nó có thể được ký kết mà không gửi yêu cầu không đầy đủ đầu tiên. Điều này rõ ràng không hoạt động.
import requests
import hmac
import hashlib
import time
headers = { 'nonce': '',
'Key' : 'myKey',
'Sign': '',}
payload = { 'command': 'returnCompleteBalances',
'account': 'all'}
secret = 'mySecret'
headers['nonce'] = int(time.time())
response = requests.post('https://poloniex.com/tradingApi', params= payload, headers= headers)
headers['Sign'] = hmac.new(secret, response.url, hashlib.sha512)
Điều đó thật nhanh, Cảm ơn rất nhiều! – Werhli
@MartijnPieters khi tôi chạy điều này tôi nhận được một lỗi nói: 'Yêu cầu' đối tượng không có thuộc tính 'cơ thể'. cho dòng này: signature = hmac.new (bí mật, request.body, digestmod = hashlib.sha512) –
@abcla sửa –