私は、暗号化交換であるpoloniex.comの取引APIにアクセスするためにPythonを使用しようとしています。これを行うには、私はこの処方に従わなければならない:HMAC-SHA512とPythonリクエストライブラリを使用してPOSTリクエストに署名するにはどうすればよいですか?
を取引APIへのすべての呼び出しはhttps://poloniex.com/tradingApiにHTTP POSTを介して送信されており、次のヘッダー含まれている必要があります
キー - あなたのAPIキーを。
Sign - HMAC-SHA512メソッドに従って、キーの「秘密」によって署名されたクエリのPOSTデータ。さらに、すべてのクエリには「nonce」POSTパラメータが含まれている必要があります。 nonceパラメーターは、使用されている以前のnonceよりも常に大きくなければならない整数です。
これまで私がこれまで行ってきたことは次のとおりです。私の現在の問題は、POST URLをコンパイルする方法がわからないので、まず不完全なリクエストを送信せずに署名できるようにすることです。これは明らかに機能しません。
import requests
import hmac
import hashlib
import time
headers = { 'nonce': '',
'Key' : 'myKey',
'Sign': '',}
payload = { 'command': 'returnCompleteBalances',
'account': 'all'}
secret = 'mySecret'
headers['nonce'] = int(time.time())
response = requests.post('https://poloniex.com/tradingApi', params= payload, headers= headers)
headers['Sign'] = hmac.new(secret, response.url, hashlib.sha512)
これはとても速く、ありがとうございました! – Werhli
@MartijnPietersこれを実行すると、「要求」オブジェクトに属性「ボディ」がないというエラーが表示されます。この行のために:signature = hmac.new(secret、request.body、digestmod = hashlib.sha512) –
@abclaが修正されました –