我查看了此處的 FTX API 檔案:https ://docs.ftx.us/#overview
我查看了在這個 repo 中找到的示例代碼:https ://github.com/ftexchange/ftx/tree/master/rest
我在/wallet/withdrawals上點擊POST請求, 但我得到了
{"success":false,"error":"未登錄:無效簽名","errorCode":"not_logged_in"}
這是我的代碼:
resp = requests.get('https://otc.ftx.com/api/time')
ftx_t = resp.json()
time = ftx_t['result']
date_format = datetime.datetime.strptime(time, "%Y-%m-%dT%H:%M:%S.%f%z")
unix_time = datetime.datetime.timestamp(date_format)
ts = unix_time * 1000
# ts = int(time.time() * 1000)
request = Request('**POST**', '**https://ftx.us/api/wallet/withdrawals**') # To make withdrawas
prepared1 = request.prepare()
body = {
"coin": "USDT", # coin to withdraw
"size": 0, # amount to withdraw
"address": "***************" # address to send to
}
signature_payload1 = f'{ts}{prepared1.method}{prepared1.path_url}'.encode()
signature1 = hmac.new('**SECRET KEY**'.encode(), signature_payload1, 'sha256').hexdigest()
prepared1.headers[f'FTXUS-KEY'] = '**API KEY**'
prepared1.headers[f'FTXUS-SIGN'] = signature1
prepared1.headers[f'FTXUS-TS'] = str(ts)
prepared1.headers['Content-Type'] = 'application/json'
prepared1.headers['Accept'] = 'application/json'
data1 = json.dumps(body).encode()
res10 = requests.post('https://ftx.us/api/wallet/withdrawals', data=data1, headers=prepared1.headers)
uj5u.com熱心網友回復:
您需要對資料進行編碼以發送 post 請求,并將此編碼資料添加到正文中以及在請求 POST 請求時。
這可能會有所幫助:
在呼叫signature1變數之前,您需要添加以下內容:
prepared1.body = json.dumps(body).encode()
if prepared1.body:
signature_payload1 = prepared1.body
在您的 POST 請求方法中,在您的Data Attribute中添加正文:
res10 = requests.post('https://ftx.us/api/wallet/withdrawals', data=prepared1.body, headers=prepared1.headers)
在這里,我為您編輯了代碼:
resp = requests.get('https://otc.ftx.com/api/time')
ftx_t = resp.json()
time = ftx_t['result']
date_format = datetime.datetime.strptime(time, "%Y-%m-%dT%H:%M:%S.%f%z")
unix_time = datetime.datetime.timestamp(date_format)
ts = (unix_time * 1000)
request = Request('POST', 'https://ftx.us/api/wallet/withdrawals') # To make withdrawas
prepared1 = request.prepare()
signature_payload1 = f'{ts}{prepared1.method}{prepared1.path_url}'.encode()
body = {
"coin": "USDT", # coin to withdraw
"size": 0, # amount to withdraw
"address": "***************" # address to send to
}
prepared1.body = json.dumps(body).encode()
if prepared1.body:
signature_payload1 = prepared1.body
signature1 = hmac.new(SECRET KEY.encode(), signature_payload1,
'sha256').hexdigest()
prepared1.headers[f'FTXUS-KEY'] = API KEY
prepared1.headers[f'FTXUS-SIGN'] = signature1
prepared1.headers[f'FTXUS-TS'] = str(ts)
prepared1.headers['Content-Type'] = 'application/json'
prepared1.headers['Accept'] = 'application/json'
res10 = requests.post('https://ftx.us/api/wallet/withdrawals', data=prepared1.body, headers=prepared1.headers)
您可以檢查這些以供參考:
https://blog.ftx.com/blog/api-authentication/
https://github.com/ftexchange/ftx/issues/10
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/515239.html
上一篇:工廠方法“dataSource”拋出例外;嵌套例外是java.lang.NumberFormatException:無法決議空字串
