bitfinex api v2 错误,密钥无效

2024-01-12

我正在尝试对其新的 v2 api 进行基本的经过身份验证的 api 调用,并返回无效的 api 密钥错误。

我重新发出 api 密钥只是为了验证,同样的错误。

from time import time
import urllib.request
import urllib.parse
import hashlib
import hmac

APIkey = b'myapikeyyouarenotsupposedtosee'
secret = b'myceeeeecretkeyyyy'

url = 'https://api.bitfinex.com/v2/auth/r/wallets'

payload = {
    #'request':'/auth/r/wallets',
    'nonce': int(time() * 1000),
}

paybytes = urllib.parse.urlencode(payload).encode('utf8')
print(paybytes)

sign = hmac.new(secret, paybytes, hashlib.sha512).hexdigest()
print(sign)

headers = {
    'Key': APIkey,
    'Sign': sign
}

req = urllib.request.Request(url, headers=headers, data=paybytes)
with urllib.request.urlopen(req) as response:
    the_page = response.read()
    print(the_page)

如何对 bitfinex 的新 v2 API 进行经过身份验证的 api 调用?


你的标题是错误的。我也尝试这样做并尝试使用示例代码 https://bitfinex.readme.io/v2/docs/rest-auth来自 bitfinex v2 api 文档,但是他们的示例包含一个错误,因为他们需要首先将字符串编码为 UTF-8 字节数组。所以我已经修复了它并在下面发布了整个示例。

#
# Example Bitfinex API v2 Auth Python Code
#
import requests  # pip install requests
import json
import base64
import hashlib
import hmac
import os
import time #for nonce

class BitfinexClient(object):
    BASE_URL = "https://api.bitfinex.com/"
    KEY = "API_KEY_HERE"
    SECRET = "API_SECRET_HERE"

    def _nonce(self):
        # Returns a nonce
        # Used in authentication
        return str(int(round(time.time() * 10000)))

    def _headers(self, path, nonce, body):
        secbytes = self.SECRET.encode(encoding='UTF-8')
        signature = "/api/" + path + nonce + body
        sigbytes = signature.encode(encoding='UTF-8')
        h = hmac.new(secbytes, sigbytes, hashlib.sha384)
        hexstring = h.hexdigest()
        return {
            "bfx-nonce": nonce,
            "bfx-apikey": self.KEY,
            "bfx-signature": hexstring,
            "content-type": "application/json"
        }

    def req(self, path, params = {}):
        nonce = self._nonce()
        body = params
        rawBody = json.dumps(body)
        headers = self._headers(path, nonce, rawBody)
        url = self.BASE_URL + path
        resp = requests.post(url, headers=headers, data=rawBody, verify=True)
        return resp

    def active_orders(self):
        # Fetch active orders
        response = self.req("v2/auth/r/orders")
        if response.status_code == 200:
          return response.json()
        else:
          print('error, status_code = ', response.status_code)
          return ''

# fetch all your orders and print out
client = BitfinexClient()
result = client.active_orders()
print(result)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bitfinex api v2 错误,密钥无效 的相关文章

随机推荐

  • 如何用 C 验证 X509 证书

    我有 X509 格式的证书 这是函数中的输入参数 我想做的是验证证书的有效性 如何做呢 X509 verify cert 我找到了这个函数 但是它不接受 X509 证书 它接受 X509 store 而我只有一个 X509 谢谢 此致 我来
  • ASP.NET代码检测IIS“Windows身份验证”是否启用

    我希望能够从 ASP NET 代码中检测 IIS 当前是否具有 Windows 身份验证 可用 从我安装并当前在 匿名访问 下运行的应用程序开始 我想检测 IIS中实际上已经安装了 Windows身份验证 组件 例如某些IIS7没有安装 默
  • slim 动态条件类 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 只是为了帮助其他开发人员 因为 SO 上没有类似的问题 div class is active active inactive div cl
  • Object.ReferenceEquals 为两个不同的对象打印 true

    下面的代码是如何打印的true string x new string new char 0 string y new string new char 0 Console WriteLine object ReferenceEquals x
  • 将 mysql“创建表”翻译为 postgresql

    我正在尝试将 创建表 从 mySQL 翻译为 postgreSQL mySQL CREATE TABLE IF NOT EXISTS pets id INT 4 UNSIGNED NOT NULL AUTO INCREMENT PRIMAR
  • Hector 是否提供 API 来支持复合密钥?

    现在 我必须通过将子项格式化在一起来手动生成复合键 它很丑陋而且效率低下 我想知道 Hector 是否提供了这样一组 API 来以更体面的方式处理复合键 是的 它确实 您可以查看 DynamicCompositeTest 的示例 https
  • 让鼠标穿过Windows Flutter

    I am working on a Flutter Desktop screen Annotation Application where I want to ignore the mouse events and let is pass
  • makefile 中前缀 @- 是什么意思?

    前缀是什么意思 在 makefile 中是什么意思 与使用有什么区别 没有 例如 在以下情况下 ifndef NO CBLAS echo Generating cblas h in DESTDIR OPENBLAS INCLUDE DIR
  • Java 中对 MacOS X 的本机 Swing 菜单栏支持

    一个突出的链接是http www devdaily com blog post jfc swing handling main mac menu in swing application http www devdaily com blog
  • 检测Android设备是否有互联网连接

    我需要判断我的设备是否有互联网连接 我找到了很多答案 例如 private boolean isNetworkAvailable ConnectivityManager connectivityManager ConnectivityMan
  • 如何修复过时的 git 分支 -r (删除幻影 git 分支)?

    git branch develop feature bug 76 master git branch r origin HEAD gt origin master origin develop origin feature impleme
  • 显示 StackView 页面时 Qt QML 聚焦项目(TextField)

    我想启用TextField加载 QML 文件时聚焦 但是 它不起作用 加载 TestUi qml 文件后 我放置了一些按钮及其onClick 我做的方法 recipientView focus true 效果很好 问题是第一次加载视图时未启
  • 如何递归枚举对象的属性?

    出于性能原因 我已开始重写 VMware 每日报告 尽可能使用 Get View 而不是相关的 PowerCLI 命令 这样做的一个小不便是 返回的视图对象通常具有许多属性 其中许多属性本身就是对象 某些属性嵌套四层或更多层 因此 我尝试创
  • 如何知道移动设备是否显示桌面?

    我见过很多问题 https stackoverflow com a 3540295 1408137询问如何检测设备是否是移动设备 一般来说 它们分为三类 检查屏幕尺寸 视口 检查用户代理 使用库 例如现代化 http modernizr c
  • 如何在 Visual Studio 2019 中更新我的 IntelliCode 模型?

    我从各种解决方案中创建了一些模型 但我想知道如何更新它们以利用这些解决方案中代码的更改 或者这会自动发生吗 我可以删除并重新创建模型 但这似乎有点矫枉过正 您不必删除模型 只需重新训练它即可 截至撰写本文时 刷新模型的方式是 打开您想要刷新
  • 业务审计日志 - 推荐的库或方法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道有什么好的 Java 审计日志库吗 或者至少有一本好书 文章可以帮助选择为应用程序构建审核日志的
  • 获取哈希映射中的前 10 个值

    我想弄清楚如何从 中获取前 10 个值HashMap 我最初尝试使用TreeMap并让它按值排序 然后取前 10 个值 但似乎这不是选择 因为TreeMap按键排序 我仍然希望能够知道哪些键具有最高值 K V地图的String Intege
  • 使用 AVFoundation 在视频之间快速切换

    我正在编写一个应用程序 用户可以在其中录制最多 6 个视频剪辑 每个视频剪辑的持续时间为 2 秒 录制视频剪辑后 用户可以使用 6 个按钮播放它们 每个剪辑一个 然后 用户可以通过在 6 个剪辑之间切换来录制电影 问题是 当用户按下按钮时
  • Vue.js - 每组仅单击一个按钮即可生成动态按钮

    我在一个网站上有五个问题 每个问题有 4 个答案 每个问题只能点击一个按钮 我怎样才能做到这一点 new Vue el app data answers currentQuestion examples A Lack zum Lackier
  • bitfinex api v2 错误,密钥无效

    我正在尝试对其新的 v2 api 进行基本的经过身份验证的 api 调用 并返回无效的 api 密钥错误 我重新发出 api 密钥只是为了验证 同样的错误 from time import time import urllib reques