Api
通過 Python 進行 API 身份驗證
我無法按照 LakeBTC 的 API 說明通過 Python 連接到他們的 API。
API 文件: https ://www.lakebtc.com/s/api
我有我的密鑰(電子郵件地址)和秘密。我正在使用 API URL:https ://www.LakeBTC.com/api_v1
無論我嘗試什麼,我都會收到 401 錯誤。以下是我的程式碼,有什麼想法嗎?
tonce = str(int(time.time() * 1e6)) p = 'tonce=' + tonce \ + '&accesskey=' + self.key \ + '&requestmethod=post' \ + '&id=1' \ + '&method=' + 'getAccountInfo' \ + '¶ms=' # Create signature hmac_obj = hmac.new(self.secret, p, hashlib.sha1) b64 = 'Basic ' + base64.b64encode(self.key + ':' + hmac_obj.digest()) header = { 'Json-Rpc-Tonce': tonce, 'Authorization': b64, 'content-type': 'application/json-rpc', } response = requests.post(self.apiUrl, data=p, headers=header)
我是否正確加密和散列?
仔細看看他們的 API 頁面,你會發現 LakeBTC 提供了一個簡單的 Python 程式碼:https ://github.com/LakeBTC/lakebtc_python
您可以在這裡找到其他範常式式碼:https ://www.lakebtc.com/s/api 包括 PHP、Node.JS、Ruby 和 Python,未來可能會有更多程式碼 :)
我想我發現了你的問題。(或者,至少其中之一。)
第 6 步:將 JSON 格式的參數數據發佈到此 url:
您沒有發布正確的資訊;您正在發布整個簽名。
response = requests.post(self.apiUrl, data=p, headers=header)
應該是這樣的:
response = requests.post(self.apiUrl, data=json.dumps( { "method": method, "params":",".join(params), "id": 1, }, headers=header)