Я создаю приложение для алгоритмической торговли на Python3 для торговли валютой. Я пытаюсь вызвать API-интерфейс Gemini Exchange Sandbox в Python3, чтобы получить текущие балансы. Каждый раз, когда я отправляю свой почтовый запрос, я получаю следующее сообщение об ошибке:
{
"result":"error",
"reason":"EndpointMisatch",
"message":"EndpointMisatch"
}
В ответ на это я изменил свою конечную точку на рабочий URL-адрес https://api.gemini.com/v1/balances ', что приводит к ошибке InvalidSignature.
Я удалил свой API из песочницы и создал новый, гарантируя, что у меня есть доступ управляющего фондами и трейдера как с тактом, так и без него, но безрезультатно. Документация находится здесь: https://docs.sandbox.gemini.com/rest-api/?python#error-codes
Вот моя функция: запросы на импорт импорт json время импорта импорт base64 импорт hmac импорт hashlib
def checkBalance(self):
'''
function calls private gemini method
to return account balances. Update with
production or sandbox keys/secrets depending on
environment running.
'''
#set increment for unique session
nonce = int(round(time.time()*1000))
#sandbox api endpoint
url = 'https://api.sandbox.gemini.com/v1/balances'
#build the dict payload object
payload = {
'request':'v1/balances',
'nonce': nonce
}
#endcode payload as a json object for hashing
payload = str.encode(json.dumps(payload))
#base64 encode the payload
b64 = base64.b64encode(payload)
#create the signature using sandbox secret and encoded payload in sha384 hash
signature = hmac.new(str.encode(self.s_secret), b64, hashlib.sha384).hexdigest()
#build headers as required for contacting api endpoint
headers = {
'Content-Type':'text/plain',
'X-GEMINI-APIKEY': self.s_key,
'X-GEMINI-PAYLOAD': b64,
'X-GEMINI-SIGNATURE': signature
}
#retrieve data from POST request as response
response = requests.request("POST", url, headers=headers)
#return text of response
return response.text
Я новичок в работе с библиотеками b64, hmac и hashlib. Спасибо заранее за вашу помощь.