Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python的PHP身份验证代码_Php_Python_Api - Fatal编程技术网

python的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

我正在尝试使用python登录到我的bittrex帐户,并设置一个自动交易机器人(由我自己用python编写)

然而,我的问题是,我不能认证自己。bittrex提供了一个API文档,但是代码是用PHP编写的(我真的不知道PHP)

主要的问题是我到目前为止还没有参与hmac哈希认证。。。所以我有点迷路了

bittrex提供的PHP代码如下:

$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,但绝对是网络方面的初学者。