如何使用Poloniex API发送密钥/密钥对?

时间:2016-02-11 13:37:18

标签: python api

我正在尝试编写一个简单的脚本来验证我正在进行API调用,然后我计划从那里构建一个更复杂的程序。我收到的错误回复是:

{"error":"Invalid API key\/secret pair."}

我正在处理的API文档可以在以下网址找到:

https://poloniex.com/support/api/

我刚刚手动增加现时值以保持简单。

我的代码是:

import urllib
import urllib2
import json
import time
import hmac,hashlib

APIKey = "<my_API_key>"
Secret = "<my_secret>"
post_request
"command=returnBalances"
sign = hmac.new(Secret, post_request, hashlib.sha512).hexdigest()

ret = urllib2.urlopen(urllib2.Request("https://poloniex.com/tradingApi?   key=" + APIKey + "&sign=" + sign + "&nonce=0008"))

print ret.read()

2 个答案:

答案 0 :(得分:4)

假设您的APIKey和Secret是正常的,以下版本将起作用:

import urllib
import urllib2
import json
import time
import hmac,hashlib


req={}

APIKey = "<my_API_key>"
Secret = "<my_secret>"

command="returnBalances"

req['command'] = command

req['nonce'] = int(time.time()*1000)
post_data = urllib.urlencode(req)

sign = hmac.new(Secret, post_data, hashlib.sha512).hexdigest()
#print sign
headers = {
    'Sign': sign,
    'Key': APIKey
}

ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/tradingApi', post_data, headers))
jsonRet = json.loads(ret.read())

print jsonRet

如果您使用自己的密钥和API密钥运行此代码,但仍然无效。 这肯定你的APIKey或秘密有输入错误!! [或APIkey仅限于“撤销”或您已选择IP限制并尝试从未知IP连接。]

答案 1 :(得分:1)

API文档说:

  

所有对交易API的调用都通过HTTP POST发送到https://poloniex.com/tradingApi,并且必须包含以下标题:

     
      
  • Key - 您的API密钥。
  •   
  • 签名 - 您的密钥签署的查询POST数据&#34;秘密&#34;根据HMAC-SHA512方法。
  •   
     

此外,所有查询都必须包含&#34; nonce&#34; POST参数。

即使它说&#34; header&#34;,我认为这意味着POST参数。

同时查看文档链接的reference Python implementation,API似乎需要body #wrapper > * { visibility: hidden; display: none; } body #wrapper .certificate { visibility: visible; display: table; } global作为标题,Key作为POST参数。

更改您的请求:

Sign

为:

nonce