gpt4 book ai didi

python - bitfinex api v2 错误,无效 key

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:26 27 4
gpt4 key购买 nike

我正在尝试对他们的新 v2 api 进行基本的身份验证 api 调用并返回无效的 api key 错误。

我重新发布了 api key 只是为了验证,同样的错误。

from time import time
import urllib.request
import urllib.parse
import hashlib
import hmac

APIkey = b'myapikeyyouarenotsupposedtosee'
secret = b'myceeeeecretkeyyyy'

url = 'https://api.bitfinex.com/v2/auth/r/wallets'

payload = {
#'request':'/auth/r/wallets',
'nonce': int(time() * 1000),
}

paybytes = urllib.parse.urlencode(payload).encode('utf8')
print(paybytes)

sign = hmac.new(secret, paybytes, hashlib.sha512).hexdigest()
print(sign)

headers = {
'Key': APIkey,
'Sign': sign
}

req = urllib.request.Request(url, headers=headers, data=paybytes)
with urllib.request.urlopen(req) as response:
the_page = response.read()
print(the_page)

如何对 bitfinex 的新 v2 API 进行经过身份验证的 api 调用?

最佳答案

你的标题是错误的。我也在尝试这样做并尝试使用 example code来自 bitfinex v2 api 文档,但是他们的示例包含一个错误,因为他们需要首先将字符串编码为 UTF-8 字节数组。所以我修复了它并在下面发布了整个示例。

#
# Example Bitfinex API v2 Auth Python Code
#
import requests # pip install requests
import json
import base64
import hashlib
import hmac
import os
import time #for nonce

class BitfinexClient(object):
BASE_URL = "https://api.bitfinex.com/"
KEY = "API_KEY_HERE"
SECRET = "API_SECRET_HERE"

def _nonce(self):
# Returns a nonce
# Used in authentication
return str(int(round(time.time() * 10000)))

def _headers(self, path, nonce, body):
secbytes = self.SECRET.encode(encoding='UTF-8')
signature = "/api/" + path + nonce + body
sigbytes = signature.encode(encoding='UTF-8')
h = hmac.new(secbytes, sigbytes, hashlib.sha384)
hexstring = h.hexdigest()
return {
"bfx-nonce": nonce,
"bfx-apikey": self.KEY,
"bfx-signature": hexstring,
"content-type": "application/json"
}

def req(self, path, params = {}):
nonce = self._nonce()
body = params
rawBody = json.dumps(body)
headers = self._headers(path, nonce, rawBody)
url = self.BASE_URL + path
resp = requests.post(url, headers=headers, data=rawBody, verify=True)
return resp

def active_orders(self):
# Fetch active orders
response = self.req("v2/auth/r/orders")
if response.status_code == 200:
return response.json()
else:
print('error, status_code = ', response.status_code)
return ''

# fetch all your orders and print out
client = BitfinexClient()
result = client.active_orders()
print(result)

关于python - bitfinex api v2 错误,无效 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com