【问题标题】:Python authenticated calls to bitfinex exchange对 bitfinex 交换的 Python 认证调用
【发布时间】:2017-06-12 01:23:19
【问题描述】:

在对 bitfinex 进行经过身份验证的调用时,我遇到了一些重大问题。我已按照文档和一些示例进行操作,但无法正常工作。我不断收到无效签名作为响应并且它没有进行身份验证。

任何提示或指示都会很棒,我仍在学习 python,所以我对这个有点难过。

谢谢!

# pull current offers
def bitfinex_get_offers():
if lend_usd == True:
    payloadObject_usd = {
        'request': '/v1/offers',
        'nonce': str(time.time() * 100000),
        'options': {'symbol': 'USD'}
    }
    usd_offers_payload_json = json.dumps(payloadObject_usd)
    usd_offers_payload = str(base64.b64encode(usd_offers_payload_json))
    usd_offers_payload_encode = hmac.new(api_secret, usd_offers_payload, hashlib.sha384)
    usd_offers_payload_encode = usd_offers_payload_encode.hexdigest()
    headers_usd = {
                'X-BFX-APIKEY': api_key,
                'X-BFX-PAYLOAD': base64.b64encode(usd_offers_payload_json),
                'X-BFX-SIGNATURE': usd_offers_payload_encode
                }

    usd_offers_request = requests.get(offers_url, data={}, headers = headers_usd)
    return usd_offers_request.json()

else:
    payloadObject_btc = {
                    'request': '/v1/offers',
                    'nonce': str(time.time() * 100000),
                    'options': {'symbol': 'BTC'}
                    }
    btc_offers_payload_json = json.dumps(payloadObject_btc)
    btc_offers_payload = str(base64.b64encode(btc_offers_payload_json))
    btc_offers_payload_encode = hmac.new(api_secret, btc_offers_payload, hashlib.sha384)
    btc_offers_payload_encode = btc_offers_payload_encode.hexdigest()
    headers_btc = {
                'X-BFX-APIKEY': api_key,
                'X-BFX-PAYLOAD': base64.b64encode(btc_offers_payload_json),
                'X-BFX-SIGNATURE': btc_offers_payload_encode
                }
    btc_offers_request = requests.get(offers_url, data={}, headers = headers_btc)
    return btc_offers_request.json()


# pull current balances
def bitfinex_get_balance():
payloadObject_balance = {
            'request': '/v1/balances',
            'nonce': str(time.time() * 100000),
            'options': ()
            }
balance_payload_json = json.dumps(payloadObject_balance)
balance_payload = str(base64.b64encode(balance_payload_json))
balance_payload_encode = hmac.new(api_secret, balance_payload, hashlib.sha384)
balance_signature = balance_payload_encode.hexdigest()
headers_balance = {
                'X-BFX-APIKEY': api_key,
                'X-BFX-PAYLOAD': base64.b64encode(balance_payload_json),
                'X-BFX-SIGNATURE': balance_signature
                }
balance_request = requests.get(balance_url, data={}, headers = headers_balance)
print('Response Code: ' + str(balance_request.status_code))
print('Response Header: ' + str(balance_request.headers))
print('Response Content: '+ str(balance_request.content))

【问题讨论】:

    标签: python api bitcoin


    【解决方案1】:

    你应该使用字节类型 api_secret。

    api_secret = "ABCD"     # (X)
    api_secret = b"ABCD"    # (O)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多