使用Kraken Python REST API,如何与Sandbox/demo环境交互?

qq24tv8q  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(94)

bounty还有4天到期。回答此问题可获得+150声望奖励。Dave正在寻找一个答案从一个有信誉的来源

我想使用Python 3.9客户端和Kraken REST API。我使用的是他们发布在这里的代码库--https://support.kraken.com/hc/en-us/articles/360025180232-REST-API-command-line-client-Python-。我想测试这些调用,所以最近在https://demo-futures.kraken.com/上创建了一个API密钥。我遇到的麻烦是弄清楚演示API URL是什么。具体地说,我想用这段代码

api_domain = "https://api.kraken.com"

...
if api_method in api_private or api_method in api_trading or api_method in api_funding or api_method in api_staking:
    api_path = "/0/private/"
    api_nonce = str(int(time.time()*1000))
    try:
        api_key = open("API_Public_Key").read().strip()
        api_secret = base64.b64decode(open("API_Private_Key").read().strip())
    except:
        print("API public key and API private (secret) key must be in plain text files called API_Public_Key and API_Private_Key")
        sys.exit(1)
    api_postdata = api_data + "&nonce=" + api_nonce
    api_postdata = api_postdata.encode('utf-8')
    api_sha256 = hashlib.sha256(api_nonce.encode('utf-8') + api_postdata).digest()
    api_hmacsha512 = hmac.new(api_secret, api_path.encode('utf-8') + api_method.encode('utf-8') + api_sha256, hashlib.sha512)
    api_request = urllib.request.Request(api_domain + api_path + api_method, api_postdata)
    api_request.add_header("API-Key", api_key)
    api_request.add_header("API-Sign", base64.b64encode(api_hmacsha512.digest()))
    api_request.add_header("User-Agent", "Kraken REST API")
elif api_method in api_public:
    api_path = "/0/public/"
    api_request = urllib.request.Request(api_domain + api_path + api_method + '?' + api_data)
    api_request.add_header("User-Agent", "Kraken REST API")

但我不确定我需要改变什么“API_domain”,以便与演示期货的关键工作。我得到“异常:EAPI:Invalid key”当我使用我的API密钥从演示期货帐户与

gtlvzcf8

gtlvzcf81#

要使用Kraken Python REST API与Sandbox/demo环境交互,您应该将代码中的api_domain变量更改为demo环境URL。演示环境的URL是“https://demo-futures.kraken.com“。

api_domain = "https://demo-futures.kraken.com"

参见“The Base Clients
如果选择了沙盒环境,则必须从演示环境的设置页面生成密钥:https://demo-futures.kraken.com/settings/api
访问Kraken Futures API的标准URL是“https://futures.kraken.com“,其端点可以通过向https://futures.kraken.com/derivatives/api/v3发送HTTP请求来访问。但是,对于沙盒环境,您应该使用“https://demo-futures.kraken.com“域。
请确保您使用的API密钥是从沙箱环境中生成的,因为生产环境中的密钥在沙箱环境中不起作用,反之亦然。

相关问题