Kraken Futures API - 身份验证错误 Python

问题描述 投票:0回答:1

我发现与其他提供商相比,Kraken Futures API 令人困惑。使用演示帐户,我尝试发出基本的私人请求,但到目前为止还没有遇到身份验证错误。代码主要来自Kraken docs(非期货)

Futures 身份验证文档:https://support.kraken.com/hc/en-us/articles/360022635592-Generate-authentication-strings-REST-API-

api_sec = "MxA2FwIQxCxsfy2XDa4R8PwTjwLKjzT8GSOw+qOVuWGh3Lx6PtyW0f94J5XXKz9mP8bztRJSDQJVKBsHFicrDr/N"
api_url = "https://futures.kraken.com/derivatives/api/v3"
api_key = 'Y7kVv/hW0JWRRAhJtA8BuJkUX+E0gWmTL5NWf4lRPN8f+iYoJp9AoYwW'


def get_kraken_signature(urlpath, data, secret):

    postdata = urllib.parse.urlencode(data)
    encoded = (str(data['nonce']) + postdata).encode()
    message = urlpath.encode() + hashlib.sha256(encoded).digest()

    mac = hmac.new(base64.b64decode(secret), message, hashlib.sha256)
    sigdigest = base64.b64encode(mac.digest())
    return sigdigest.decode()

# Attaches auth headers and returns results of a get request
def kraken_request(uri_path, data, api_key, api_sec):
    headers = {}
    headers['API-Key'] = api_key
    # get_kraken_signature() as defined in the 'Authentication' section
    headers['API-Sign'] = get_kraken_signature(uri_path, data, api_sec)             
    req = requests.get((api_url + uri_path), headers=headers, data=data)
    return req

# Construct the request and print the result
resp = kraken_request('/accounts', {
    "nonce": str(int(1000*time.time()))
}, api_key, api_sec)

输出 {“结果”:“错误”,“错误”:“authenticationError”,“serverTime”:“2022-05-13T10:14:50.838Z”}

python cryptoapi
1个回答
0
投票

对于未来遇到这个问题的任何人(就像我一样),如果您尝试向您的 DEMO Kraken 期货账户提出私人请求:

  • 首先访问他们的 GitHub(加密设施),然后访问 Rest-v3-Python 存储库并复制他们的代码以及所有 API 函数,或者将其与您自己的代码进行比较,确保它执行相同的操作;
  • 确保您使用正确的 API url:请注意,在 OP 的消息中,他们使用 https://futures.kraken.com/..。如果您想使用模拟账户进行交易,则网址应为“https://demo- futures.kraken.com/...”。现场和演示之间的端点保持相同。
  • 这是我的错误:确保在您的演示帐户中生成密钥对并在代码中使用此密钥对。您的 futures.kraken.com API 密钥在演示中不起作用。
© www.soinside.com 2019 - 2024. All rights reserved.