[英]Consuming Blinktrade Rest API with python given error
我是python的新手。 只需几个小时即可学习。
我正在尝试使用REST API来获取一些帐户信息...
这是我的要求:
def getAccountData():
nonce = int(datetime.datetime.now().timestamp())
signature = hmac.new(b'TDDh8djV3NwXt53gSrScDul6o6w3HnnZsHuh6HTF9SA', msg=nonce, digestmod=hashlib.sha256).digest()
print(signature)
headers = {
'content-type': 'application/json',
'APIKey':conf['API_KEY'],
'Nonce':str(nonce),
}
data = {
"MsgType": "U2",
"BalanceReqID": 1
}
r = requests.post('https://api.blinktrade.com/tapi/v1/message', data=data, headers=headers)
print(r.json())
这是错误:
追溯(最近一次通话最后一次):getAccountData()中的文件“ foxbit.py”,第51行,getAccountData中的文件“ foxbit.py”,行30,签名= hmac.new(b'TDDh8djV3NwXt53gSrScDul6o6w3HnnZsHuh6HTFF9SA',msg = nonce, = hashlib.sha256).digest()文件“ C:\\ Python \\ Python35 \\ lib \\ hmac.py”,第144行,位于新的返回HMAC(key,msg,digestmod)文件“ C:\\ Python \\ Python35 \\ lib \\ “ hmac.py”,第84行, init self.update(msg)文件“ C:\\ Python \\ Python35 \\ lib \\ hmac.py”,第93行,更新self.inner.update(msg)TypeError:对象支持需要缓冲API
我正在尝试使用此API: https://blinktrade.com/docs/?shell#balance
: https://blinktrade.com/docs/?shell#balance
balance
方法
没有成功。
我想创建和python应用程序来观看我打开的比特币订单。 此错误是怎么回事? 关于文档,说我需要这样做:
{
"MsgType": "U2",
"BalanceReqID": 1
}
message='{ "MsgType": "U2", "BalanceReqID": 1 }'
api_url='API_URL_REST_ENDPOINT'
api_key='YOUR_API_KEY_GENERATED_IN_API_MODULE'
api_secret='YOUR_SECRET_KEY_GENERATED_IN_API_MODULE'
nonce=`date +%s`
signature=`echo -n "$nonce" | openssl dgst -sha256 -hex -hmac "$api_secret" | cut -d ' ' -f 2`
curl -X POST "$api_url" \
-H "APIKey:$api_key" \
-H "Nonce:$nonce" \
-H "Signature:$signature" \
-H "Content-Type:application/json" \
-d "$message"
3小时尝试,什么都没有! 嘿,我需要一些帮助。
主要问题是生成签名时您没有将现时作为字节数组格式传递。
这是python 3.4之后的更改
hmac现在接受bytearray以及new()函数的key参数的字节,并且new()函数和update()方法的msg参数现在接受hashlib模块支持的任何类型。 (由JonasBorgström在bpo-18240中贡献。)
https://docs.python.org/3/whatsnew/3.4.html#hmac
在nonce上传递bytearray
数组应该可以正常工作。
signature = hmac.new(b'SECRET', msg=bytearray(nonce), digestmod=hashlib.sha256).digest()
另外,您忘记了Signature
标头。
您可以遵循这个具有非常有用的python示例的要点,它实际上是基于python2构建的,但是您仍然可以遵循它,并且非常容易上手。 https://gist.github.com/pinhopro/60b1fd213b36d576505e
作为BlinkTrade的员工,不要犹豫,问我任何事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.