2014-10-06 5 views
1

Python을 통해 bitcoin exchange API를 사용하려고 할 때 거의 문제가 없습니다. 나는 PHP에서 예를 들어 기능이 있습니다Python : API (PHP 예제에서 구현)를 사용하는 HMAC 서명 사용

function bitmarket_api($method, $params = array()) 
{ 
$key = "my_key"; 
$secret = "my_secret"; 
$params["method"] = $method; 
$params["tonce"] = time(); 
$post = http_build_query($params, "", "&"); 
$sign = hash_hmac("sha512", $post, $secret); 
$headers = array(
"API-Key: " . $key, 
"API-Hash: " . $sign, 
); 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_URL, "https://www.bitmarket.pl/api2/"); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
$ret = curl_exec($curl); 
return json_decode($ret); 
} 

을 그리고 내 파이썬 구현입니다 : 내가 정보를 원하시면 방법 (또는 다른 방법) 호출 할 때 내가 '잘못된 API 키를 얻을, 그래서

def bitmarket_api(method, params): 

    key = 'my_key' 
    secret = 'my_secret' 
    url = 'https://www.bitmarket.pl/api2/' 

    params['method'] = method 
    params['tonce'] = timestamp() 

    post = urllib.urlencode(params) 
    sign = base64.b64encode(str(HMAC(secret, post, sha512).digest())) 

    headers = {} 

    headers['API-Key:'] = key 
    headers['API-Hash:'] = sign 

    req = urllib2.Request(url, post, headers) 
    res = urllib2.urlopen(req, post) 
    return json.load(res) 

'오류. 나는 해결책을 찾고 있었고, 나는 succes없이 여러 다른 접근법을 시도했다. 사람들이 나를 도와 줄 수 있습니까? 문제는 헤더에있을 수 있다고 생각합니다 ... 불쌍한 영어를 용서하십시오. 최선을 다하려고 노력하지만 실수를하고 있습니다.

답변