我正在为https://poloniex.com/support/api/编写一个机器人
公共方法都可以正常工作,但交易 API 方法需要一些额外的技巧:
对交易 API 的所有调用都通过 HTTP POST 发送到https://poloniex.com/tradingApi,并且必须包含以下标头:
密钥 - 您的 API 密钥。
签名 - 查询的 POST 数据根据 HMAC-SHA512 方法由您的密钥的“秘密”签名。
此外,所有查询都必须包含“nonce”POST 参数。nonce 参数是一个整数,它必须始终大于之前使用的 nonce。
来自交易 API 的所有响应都是 JSON 格式。
我的 returnBalances 代码如下所示:
import hashlib
import hmac
from time import time
import requests
class Poloniex:
def __init__(self, APIKey, Secret):
self.APIKey = APIKey
self.Secret = Secret
def returnBalances(self):
url = 'https://poloniex.com/tradingApi'
payload = {
'command': 'returnBalances',
'nonce': int(time() * 1000),
}
headers = {
'Key': self.APIKey, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用请求库在Python 3.4中为API调用创建HMAC-SHA512签名请求.我正在尝试关注文档,但是我遇到了这个错误:
AttributeError: '_hashlib.HASH' object has no attribute 'new'
Run Code Online (Sandbox Code Playgroud)
这是一些代码.它失败了hmac构造函数的错误.如果我尝试传递hashlib.md5()或完全省略摘要参数,那就没问题.
我不确定我之后是否正确签署了请求,因为我还没有那么远.我试图使用的服务的文档说我用我的秘密签署URL.我需要这个字节串才能使用.
import hmac
import hashlib
import requests
secret = b'mysecret'
url = b'http://someurl.com/something/'
signing = hmac.new(secret, url, hashlib.sha512())
headers = {'apisign': signing.digest()}
response = requests.get(url, headers=headers)
Run Code Online (Sandbox Code Playgroud)
任何指针赞赏.我找不到一个例子.谢谢!