python的PHP身份验证代码
我正在尝试使用python登录到我的bittrex帐户,并设置一个自动交易机器人(由我自己用python编写) 然而,我的问题是,我不能认证自己。bittrex提供了一个API文档,但是代码是用PHP编写的(我真的不知道PHP) 主要的问题是我到目前为止还没有参与hmac哈希认证。。。所以我有点迷路了 bittrex提供的PHP代码如下:python的PHP身份验证代码,php,python,api,Php,Python,Api,我正在尝试使用python登录到我的bittrex帐户,并设置一个自动交易机器人(由我自己用python编写) 然而,我的问题是,我不能认证自己。bittrex提供了一个API文档,但是代码是用PHP编写的(我真的不知道PHP) 主要的问题是我到目前为止还没有参与hmac哈希认证。。。所以我有点迷路了 bittrex提供的PHP代码如下: $apikey='xxx'; $apisecret='xxx'; $nonce=time(); $uri='https://bittrex.com/api/v
$apikey='xxx';
$apisecret='xxx';
$nonce=time();
$uri='https://bittrex.com/api/v1.1/market/getopenorders?apikey='.$apikey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);
我还试图根据其他stackoverflow帖子来编造一些东西。。。但我能想到的是:
import hashlib
import hmac
import requests
import time
apikey = 'xxx'
apisecret = 'xxx'
def request_comkort(url, payload ):
tosign = "&".join( [i + '=' + payload[i] for i in payload] )
sign = hmac.new( apisecret, tosign , hashlib.sha512);
headers = {'sign': str(sign.hexdigest()), 'nonce': str(int(time.time())), 'apikey': apikey }
r = requests.post(url, data=payload, headers=headers)
print tosign, '\n'
print sign, '\n'
print headers, '\n'
print url, '\n'
print payload, '\n'
print headers, '\n'
return r.text
print request_comkort("https://bittrex.com/api/v1.1/account/getbalances", {})
不幸的是,它并没有真正起作用。。
我得到一个错误:
{"success":false,"message":"APIKEY_NOT_PROVIDED","result":null}
如果有人能帮我或者给我指出正确的方向,那就太棒了。我迫不及待地想运行我的交易机器人…:)
提前谢谢你 我也遇到了同样的问题,我想到了这个。 不幸的是,我通过了密钥和nonce问题,但却遇到了密钥问题。不太熟悉加密。如果你能帮忙。。。 这是代码。请注意,我正在ubuntu上使用Python2.7,因此请求和urllib的工作方式可能与您的版本不同
enter code here
import json
import time
import hashlib
import hmac
nonce = str('{:10.0f}'.format(time.time()))
apikey = 'mykey'
apisecret = 'mysecret'
url = 'https://api.bittrex.com/api/v1.1/account/getbalances?apikey=apikey'
url += '&nonce=' + str(int(time.time()))
sign = hmac.new(b'apisecret', b'url', hashlib.sha512).hexdigest()
headers = {'&secret': sign}
request = requests.get(url, sign)
balance = json.loads(urllib.urlopen(url).read())
print(balance)
提示:检查网络跟踪以确定API请求中的任何差异如果我知道如何做,我会这样做。抱歉,我的知识不足需要不止一句提示。抱歉,我的英语不好,没有强调我在这个主题中有多笨。我懂一些python,但绝对是网络方面的初学者。