Gate.IO API 接口详解
Gate.IO 提供了一套强大的 API 接口,允许开发者以编程方式访问平台上的各种功能,包括交易、账户管理、数据查询等。 本文将深入解析 Gate.IO API 接口,帮助开发者快速上手并构建自己的应用程序。
认证与授权
在使用 Gate.IO API 之前,严格的安全认证和授权是至关重要的第一步。此过程涉及生成并妥善管理您的专属 API 密钥对,该密钥对由两部分组成:API 密钥(API Key)和 API 密钥密码(API Secret)。API 密钥如同您的用户 ID,用于向 Gate.IO 的服务器清晰地标识您的身份,确保所有请求都与您的账户相关联。API 密钥密码则扮演着数字签名的角色,它被用于对您的 API 请求进行加密签名,验证请求的完整性,并防止未经授权的篡改。请务必将您的 API 密钥对视为高度敏感的凭证,采取一切必要的预防措施,例如使用安全的密码管理器、限制密钥权限、并定期轮换密钥,以防止密钥泄露或被盗用。任何未经授权的访问都可能导致资金损失或账户信息泄露,因此,密钥的安全保管是使用 Gate.IO API 的基石。
获取 Gate.IO API 密钥:
为了方便您进行自动化交易、数据分析或其他与 Gate.IO 平台相关的开发工作,您需要获取 API 密钥。API 密钥允许您通过程序化的方式访问您的 Gate.IO 账户,而无需手动登录。
-
登录您的 Gate.IO 账户:
确保您已拥有一个有效的 Gate.IO 账户。使用您的用户名和密码(或您设置的其他安全验证方式)登录到 Gate.IO 官方网站。请务必访问官方网站,以避免钓鱼网站的风险。 -
进入“API 管理”页面:
登录后,导航至账户设置或个人资料页面。通常,您可以在用户中心或账户安全等相关选项中找到“API 管理”、“API 密钥”或类似的入口。点击进入 API 管理页面。 -
创建新的 API 密钥,并设置相应的权限:
在 API 管理页面,您将看到创建新 API 密钥的选项。点击“创建 API 密钥”或类似的按钮。在创建过程中,您需要为您的 API 密钥设置相应的权限。例如,您可以设置 API 密钥只能进行交易,或者只能获取市场数据,而不能进行提现操作。 强烈建议您仅授予 API 密钥所需的最低权限,以最大程度地保障您的账户安全。 您可能需要为 API 密钥设置一个名称,方便您识别和管理不同的 API 密钥。 -
复制 API 密钥和 API 密钥密码 (Secret Key):
成功创建 API 密钥后,系统将生成两个重要的字符串:API 密钥 (API Key) 和 API 密钥密码 (Secret Key)。 API 密钥相当于您的用户名,而 API 密钥密码相当于您的密码。请务必妥善保管您的 API 密钥和 API 密钥密码,不要泄露给任何人。 Gate.IO 通常只会显示 Secret Key 一次,请立即复制并保存。如果遗失 Secret Key,您可能需要重新创建 API 密钥。您可以使用安全的密码管理器来存储这些信息。
安全提示: API 密钥的安全性至关重要。请务必采取以下措施来保护您的 API 密钥:
- 不要将 API 密钥提交到公共代码仓库(如 GitHub)。
- 不要在不安全的网络环境下使用 API 密钥。
- 定期更换 API 密钥。
- 监控您的 API 密钥的使用情况,如有异常立即禁用。
- 启用两步验证 (2FA) 以增强您的 Gate.IO 账户安全。
认证方式:
Gate.IO API 采用 HMAC-SHA512 算法对所有请求进行安全签名,确保通信的完整性和真实性。 客户端在发起 API 请求时,必须按照指定方式计算签名,并在请求头中包含必要的认证信息。未提供有效签名或签名验证失败的请求将被服务器拒绝。
请求头中必须包含以下关键信息,用于身份验证和安全保障:
-
KEY
: API 密钥,也称为 API Key。这是你在 Gate.IO 平台创建 API 密钥时获得的唯一标识符,用于关联你的账户。请妥善保管你的 API 密钥,切勿泄露给他人。 -
SIGN
: 请求签名,使用 HMAC-SHA512 算法基于请求的特定内容(如请求方法、请求路径、请求参数、时间戳等)和你的 API 密钥计算得出。 签名是验证请求来源的关键,确保请求在传输过程中未被篡改。具体的签名生成方式请参考 Gate.IO 官方 API 文档中的详细说明,不同的请求可能需要不同的签名参数。 -
Timestamp
: 请求时间戳,表示发起请求时的 Unix 时间戳。Unix 时间戳是指自 1970 年 1 月 1 日 00:00:00 UTC 起至当前时间的总秒数。时间戳用于防止重放攻击,Gate.IO 服务器通常会校验时间戳的有效性,例如,拒绝时间戳与服务器时间相差过大的请求。请确保你的系统时间与标准时间同步,以避免因时间戳问题导致的认证失败。单位为秒,建议使用精确到秒级别的时间戳。
重要提示: 为了安全起见,建议定期更换你的 API 密钥。同时,请务必阅读并理解 Gate.IO 官方 API 文档中关于身份验证和签名的完整说明,确保正确地实现 API 请求的签名过程。
签名计算:
为了确保API请求的安全性,签名计算至关重要。其过程涉及将请求的关键信息进行加密处理,生成一个独特的签名,用于验证请求的合法性。以下是详细步骤:
- HTTP 方法转换: 将请求所使用的 HTTP 方法(如 GET、POST、PUT、DELETE)转换为大写形式。这是确保签名一致性的第一步,避免因大小写差异导致签名验证失败。
- URL 路径添加: 将请求的 URL 路径,即服务器上资源的定位地址,附加到转换后的 HTTP 方法之后。URL 路径必须精确无误,任何细微的偏差都会影响签名的有效性。
- 查询参数处理: 如果请求包含查询参数(位于 URL 中“?”之后的部分),则将这些参数按其原始顺序追加到 URL 路径之后。务必对查询参数进行正确的 URL 编码,以避免特殊字符干扰签名生成。
- 请求体纳入: 如果请求包含请求体(通常用于 POST、PUT 等方法,包含要发送给服务器的数据),则将整个请求体的内容添加到 URL 路径和查询参数之后。请求体的内容应与其原始格式完全一致,包括任何换行符或空格。
- HMAC-SHA512 签名: 使用您的 API 密钥密码(API Secret Key)对上述步骤中构建的字符串进行 HMAC-SHA512 加密签名。HMAC-SHA512 是一种消息认证码算法,它使用密钥和哈希函数来生成签名,提供更高安全级别的认证。
- 十六进制转换: 将 HMAC-SHA512 签名结果转换为十六进制字符串表示形式。这是因为十六进制字符串更易于传输和存储,同时保持了签名的完整性。
请注意,在实际应用中,为了增强安全性,通常还会将时间戳添加到签名过程中,以防止重放攻击。时间戳表示请求的创建时间,服务器可以验证时间戳的有效性,拒绝过期的请求。
示例代码(Python):
import hashlib import hmac import time import urllib.parse
def generate_signature(api_secret, method, url_path, query_string, request_body): """ 生成 Gate.IO API 请求签名. 此函数将请求方法、URL路径、查询字符串和请求体组合在一起, 并使用 HMAC-SHA512 算法和 API 密钥对组合后的字符串进行签名。 同时返回签名和当前时间戳,时间戳用于防止重放攻击. """ timestamp = str(int(time.time())) message = method + url_path if query_string: message += "?" + query_string if request_body: message += request_body
hmac_key = api_secret.encode('utf-8')
message = message.encode('utf-8')
signature = hmac.new(hmac_key, message, hashlib.sha512).hexdigest()
return signature, timestamp
API 端点和功能
Gate.IO API 提供了一整套全面的端点和功能,旨在满足各种用户的需求,从个人交易者到机构投资者。它覆盖了交易操作、账户管理、实时市场数据获取等多个关键领域。通过这些API,用户可以构建自动化交易策略、监控市场动态、管理账户资产以及集成Gate.IO的功能到他们自己的应用程序中。
常用的 API 端点:
- 现货交易 API:
- 合约交易 API:
- 杠杆交易 API:
- 账户 API:
- 市场数据 API:
- 质押借贷 API:
- 理财 API:
- WebSocket API:
用于执行现货交易操作,例如下单(限价单、市价单)、取消订单、查询订单状态、获取交易历史记录。它允许开发者构建程序化交易机器人,根据预设条件自动进行买卖操作。
专门针对永续合约和交割合约的交易。功能包括:下单、修改订单、取消订单、查询持仓信息、获取历史结算记录、以及计算强平价格。 使用户能够进行杠杆交易,并对冲市场风险。
允许用户进行杠杆交易,包括借币、还币、下单、查询借贷记录等。需要注意的是,杠杆交易风险较高,使用时需谨慎。
用于管理用户的账户信息,例如查询账户余额、获取充提币记录、进行资金划转等。 这允许用户程序化的监控和管理他们的资金流动。
提供实时的市场数据,例如交易对价格、成交量、深度图、K线图等。这些数据对于分析市场趋势、制定交易策略至关重要。通过Websocket接口可以实时推送市场数据,满足对延迟敏感的应用场景。
允许用户进行质押借贷操作,包括抵押资产、借入资金、还款等。用户可以通过质押数字资产来获取流动性。
允许用户参与Gate.IO平台的理财产品,例如申购、赎回、查询收益等。为用户提供了通过持有数字资产获取收益的机会。
提供实时的市场数据推送,包括交易对价格、成交量、订单簿更新等,这允许开发者建立实时的监控和交易系统。
现货交易:
-
/spot/orders
: 订单管理接口,允许用户创建、查询和取消现货交易订单。通过此接口,用户可以提交买入或卖出指定交易对的订单,并实时查询订单状态,例如已提交、部分成交、完全成交或已取消。订单取消功能则允许用户在订单未完全成交前撤销订单。此接口支持限价单、市价单等多种订单类型,方便用户根据市场情况灵活进行交易操作。详细的参数说明包括交易对(symbol)、订单类型(type)、价格(price,限价单时必选)、数量(quantity)等。 -
/spot/accounts
: 账户余额查询接口,用于检索用户在现货账户中的资金情况。该接口返回用户持有的各种加密货币的余额信息,包括可用余额和冻结余额。可用余额表示用户可以立即用于交易的资金,而冻结余额则表示已被订单占用的资金。通过此接口,用户可以实时了解自己的资金状况,以便更好地进行资产管理和交易决策。返回值通常包含币种(currency)、可用余额(available)、冻结余额(frozen)等字段。 -
/spot/tickers
: 交易对行情数据接口,提供指定交易对的实时市场行情信息。此接口返回的数据包括最新成交价(last price)、最高价(high)、最低价(low)、成交量(volume)等关键指标。用户可以通过此接口了解市场动态,评估交易机会,并制定相应的交易策略。行情数据通常以聚合形式呈现,方便用户快速掌握市场整体趋势。数据更新频率通常较高,能够反映市场的瞬时变化。 -
/spot/trades
: 交易对历史成交记录接口,用于查询指定交易对的历史成交数据。此接口返回的数据包括成交时间(timestamp)、成交价格(price)、成交数量(quantity)、买卖方向(side)等信息。通过分析历史成交记录,用户可以了解市场的交易活跃度、价格波动情况以及潜在的支撑位和阻力位。该接口对于技术分析和量化交易策略的制定具有重要意义。数据通常按时间顺序排列,并支持分页查询。 -
/spot/currencies
: 币种信息接口,提供所有可交易币种的详细信息。此接口返回的数据包括币种名称(name)、币种符号(symbol)、以及其他相关信息,如最小交易数量、精度等。用户可以通过此接口了解平台支持的各种加密货币,并获取进行交易所需的必要参数。该接口是了解平台交易规则和限制的重要途径。通常包含币种的官方网站链接、介绍等额外信息。
合约交易 (衍生品):
-
/futures/orders
: 管理合约订单,包括创建新的限价单或市价单,查询特定订单的状态,以及在必要时取消未成交的订单。支持设置止盈止损,降低交易风险。 -
/futures/accounts
: 查询您的合约账户余额,包括可用保证金、已用保证金、未实现盈亏和已实现盈亏。 了解账户资金状况是进行有效风险管理的关键。 -
/futures/contracts
: 获取关于特定合约的详细信息,例如合约乘数、最小价格变动单位(tick size)、结算时间、交割日期以及其他重要的合约参数。 这有助于您理解交易的合约的特性。 -
/futures/tickers
: 获取合约的实时行情数据,包括最新成交价、最高价、最低价、成交量和持仓量等信息。 这些数据对于技术分析和制定交易策略至关重要。 -
/futures/insurance
: 获取平台保险基金的详细信息,包括基金余额、历史注资记录以及保险基金的使用规则。 保险基金旨在降低穿仓风险,保护交易者的利益。
杠杆交易:
-
/margin/orders
: 管理杠杆订单 。此API端点允许用户执行创建新的杠杆订单、查询现有订单的状态,以及取消未成交的订单等操作。通过详细的参数设置,用户可以精确控制杠杆交易的执行,例如指定订单类型(限价单、市价单)、交易方向(买入、卖出)、委托数量和价格等。该端点支持对单一订单和批量订单的管理。 -
/margin/accounts
: 查询杠杆账户余额 。通过此API,用户可以实时获取其杠杆交易账户的详细余额信息。这包括可用余额、冻结余额、总资产净值以及已借入资产等关键数据。了解账户状况对于风险管理至关重要,用户可以据此评估其杠杆头寸的健康状况,并及时调整交易策略。该端点通常会提供不同币种的余额信息,方便用户进行多币种的杠杆交易。 -
/margin/borrow_lend
: 借贷管理 。此API端点用于执行与杠杆交易相关的借贷操作。用户可以通过它进行借币和还币,是进行杠杆交易的基础。借币操作允许用户从平台借入所需的加密货币,以便放大交易规模。还币操作则用于偿还已借入的资金,并支付相应的利息。此API通常还提供查询当前借贷利率和可用借贷额度的功能,帮助用户做出明智的借贷决策。有效管理借贷对于控制杠杆交易的风险至关重要。
理财 (Earn):
通过理财功能,您可以轻松管理您的数字资产,并参与各种收益计划,实现资产增值。
-
/earn/savings/accounts
: 查询理财账户余额。该接口允许您实时查询当前理财账户中的资产余额,包括本金、利息以及其他收益情况。通过此接口,您可以全面掌握您的理财收益情况,便于制定更合理的资产配置策略。
返回值示例 (JSON格式):
{ "account_id": "SAV001", "currency": "USDT", "balance": 1234.56, "available_balance": 1000.00, "pending_redemption": 234.56, "apy": 0.05 // 年化收益率 }
-
/earn/savings/purchase
: 购买理财产品。使用此接口可以购买平台提供的各种理财产品,例如定期、活期、锁仓等。购买时需要指定购买金额、币种和理财产品ID等参数,请务必仔细核对相关信息。
请求参数示例 (JSON格式):
{ "product_id": "FIXED001", "currency": "USDT", "amount": 100, "auto_renew": true // 是否自动续期 }
注意事项: 购买理财产品前请仔细阅读产品说明书,了解产品的风险和收益特征。
-
/earn/savings/redeem
: 赎回理财产品。该接口用于赎回您持有的理财产品。根据产品的不同,赎回可能会有不同的规则和费用,请仔细阅读相关条款。部分产品可能不支持提前赎回。
请求参数示例 (JSON格式):
{ "account_id": "SAV001", "product_id": "FIXED001", "amount": 50, "redeem_all": false // 是否全部赎回 }
注意事项: 赎回操作可能会产生手续费,并且会影响您的收益,请谨慎操作。
WebSocket API:
Gate.IO 提供强大的 WebSocket API,旨在为开发者提供实时、低延迟的市场数据和账户信息访问。通过建立持久的双向连接,WebSocket API 能够实现数据的即时推送,无需频繁轮询,从而显著提升应用程序的响应速度和效率。 这对于需要快速反应市场变化的交易策略和算法至关重要。 开发者可以利用WebSocket API 构建高性能的交易机器人、实时数据监控面板以及自定义警报系统。
常用的 WebSocket 频道包括:
-
spot.tickers
: 提供现货市场的实时行情数据,包括最新成交价、最高价、最低价、成交量等关键指标,帮助用户快速掌握市场动态。该频道的数据更新频率非常高,适合对价格波动敏感的应用场景。 -
spot.trades
: 实时成交记录,详细记录每一笔现货交易的成交价格、成交数量和成交时间。通过分析成交记录,开发者可以了解市场的交易活跃度和买卖力量对比,从而做出更明智的交易决策。 -
spot.orders
: 实时订单更新,包括订单的创建、修改、取消和成交等状态变化。通过订阅该频道,用户可以实时监控自己的订单执行情况,并及时调整交易策略。 -
futures.tickers
: 实时合约行情数据,与现货市场的spot.tickers
频道类似,但提供的是合约市场的行情信息,包括合约的最新成交价、最高价、最低价、成交量、持仓量等。 -
futures.trades
: 实时合约成交记录,详细记录每一笔合约交易的成交价格、成交数量和成交时间,与现货市场的spot.trades
频道类似。 -
futures.orders
: 实时合约订单更新,包括合约订单的创建、修改、取消和成交等状态变化,与现货市场的spot.orders
频道类似。 该频道对于程序化交易和套利策略尤其重要,确保能够以最佳价格执行订单。
常见问题与注意事项
- 速率限制: Gate.IO API 对请求频率有限制,旨在维护系统稳定性和公平性。务必严格遵守速率限制,避免因请求过于频繁而被临时或永久封禁。具体的速率限制信息(例如:每分钟允许的请求次数)通常在 API 文档的“速率限制”或“请求限制”章节中详细说明。不同 API 端点可能具有不同的速率限制,请针对您使用的特定端点查阅文档。建议实施指数退避策略,即当遇到速率限制错误时,逐渐增加重试请求的时间间隔,以避免持续触发速率限制。
- 错误处理: API 请求并非总是成功,可能会返回各种错误代码,指示请求失败的原因。请务必仔细阅读 Gate.IO API 文档的“错误代码”或“错误处理”章节,全面了解各种错误代码的具体含义,以及针对每种错误的建议处理方法。例如,处理网络连接错误、身份验证错误、参数错误、订单执行错误等。良好的错误处理机制能够提高程序的健壮性,并帮助您快速定位和解决问题。
-
资金安全:
使用 API 进行加密货币交易具有一定的风险,务必高度重视资金安全。采取必要的安全措施,例如:
- 强密码: 使用复杂度高的密码,并定期更换。
- 双重验证(2FA): 启用 Google Authenticator 或短信验证码等双重验证方式。
- IP 白名单: 限制 API 密钥只能从特定的 IP 地址访问。
- 提现限制: 设置提现额度限制,防止未经授权的提现。
- 监控交易活动: 密切监控 API 密钥的交易活动,及时发现异常情况。
- 文档阅读: 详细阅读 Gate.IO API 文档是使用 API 的前提。文档包含了每个 API 端点的功能描述、请求参数、返回值格式、示例代码等重要信息。仔细研读文档,了解每个 API 端点的具体用途和使用方法,能够避免因误解或疏忽而导致的问题。务必关注文档的更新,及时了解 API 的最新功能和变更。
- 测试环境: 在正式使用 API 进行真实的加密货币交易之前,强烈建议先在 Gate.IO 提供的测试环境(也称为沙盒环境或模拟交易环境)中进行充分的测试。测试环境允许您使用模拟资金进行交易,而无需承担实际的资金风险。通过在测试环境中进行测试,您可以验证程序的正确性、评估交易策略的有效性,并熟悉 API 的使用方法。
- 版本更新: Gate.IO API 可能会随着时间推移进行版本更新,以修复漏洞、改进性能、添加新功能等。请密切关注 Gate.IO 官方公告,及时了解 API 的版本更新信息。如果 API 客户端代码依赖于特定版本的 API,则需要及时更新 API 客户端代码,以确保与最新版本的 API 兼容。不及时更新 API 客户端代码可能会导致程序无法正常工作。
- 数据准确性: 尽管 Gate.IO 尽力保证 API 返回数据的准确性,但由于市场波动、网络延迟、系统故障等原因,仍然可能出现数据错误。在使用 API 返回的数据做出交易决策之前,务必进行验证。例如,可以从多个数据源获取数据进行对比,或者使用历史数据进行回测。不要盲目相信 API 返回的数据,而应保持谨慎的态度。
- 交易风险: 加密货币市场波动剧烈,交易加密货币存在很高的风险。在使用 API 进行交易之前,请充分了解交易风险,包括价格波动风险、流动性风险、政策风险、安全风险等。谨慎操作,制定合理的交易策略,并严格执行风险管理措施。不要将所有的资金都投入到加密货币交易中,而应保持适当的风险敞口。
-
API 密钥安全:
API 密钥是访问 Gate.IO API 的凭证,类似于用户名和密码。务必妥善保管 API 密钥,切勿将 API 密钥泄露给他人,也不要将 API 密钥存储在不安全的地方,例如:
- 避免明文存储: 不要将 API 密钥以明文形式存储在代码中或配置文件中。
- 使用环境变量: 将 API 密钥存储在环境变量中,并在程序中读取环境变量。
- 加密存储: 使用加密算法对 API 密钥进行加密存储。
- 避免提交到公共代码仓库: 不要将包含 API 密钥的代码或配置文件提交到 GitHub 等公共代码仓库。
示例代码 (Python) - 获取现货账户余额
本示例展示如何使用 Python 编程语言与交易所的 API 交互,获取现货账户余额。该代码片段使用了 `requests` 库发送 HTTP 请求,并演示了必要的身份验证步骤,包括生成签名。
import requests
: 导入
requests
库,用于发送 HTTP 请求,如 GET、POST 等,与交易所的 API 进行数据交互。这是 Python 中常用的 HTTP 客户端库。
import time
: 导入
time
模块,用于获取当前时间戳,时间戳通常在 API 请求中作为参数,帮助验证请求的时效性,防止重放攻击。
import hmac
: 导入
hmac
模块,用于生成基于密钥的哈希消息认证码 (HMAC)。HMAC 用于验证请求的完整性和身份,确保请求没有被篡改,并且来自授权的用户。
import hashlib
: 导入
hashlib
模块,提供多种哈希算法,例如 SHA256,用于生成请求签名,增强安全性。
import urllib.parse
: 导入
urllib.parse
模块,用于处理 URL 的编码和解析,例如对请求参数进行 URL 编码,确保特殊字符能够正确传递。
在实际应用中,你需要替换示例代码中的占位符,例如 API 密钥、私钥和 API 端点,并根据交易所的具体 API 文档调整请求参数和签名算法。为了提高安全性,建议将 API 密钥和私钥存储在安全的地方,例如环境变量或配置文件中,避免硬编码在代码中。
API 密钥和 API 密钥密码
为了安全地与 Gate.io 交易所进行交互,需要配置API密钥和密钥密码。请务必妥善保管您的 API 密钥和密钥密码,切勿泄露给他人,避免资产损失。
API_KEY = "YOUR_API_KEY"
API_SECRET = "YOUR_API_SECRET"
BASE_URL = "https://api.gateio.ws/api/v4"
# 使用 v4 版本 API
其中,
API_KEY
是您的 API 密钥,用于身份验证;
API_SECRET
是您的 API 密钥密码,用于生成签名;
BASE_URL
是 Gate.io API 的基本 URL,当前示例使用的是 v4 版本。 请将
YOUR_API_KEY
和
YOUR_API_SECRET
替换为您的真实值。
以下函数用于生成 API 请求的数字签名,确保请求的完整性和真实性:
def generate_signature(api_secret, method, url_path, query_string, request_body):
timestamp = str(int(time.time()))
message = method + url_path
if query_string:
message += "?" + query_string
if request_body:
message += request_body
此函数接收 API 密钥密码 (
api_secret
)、HTTP 方法 (
method
)、URL 路径 (
url_path
)、查询字符串 (
query_string
) 和请求体 (
request_body
) 作为参数。它将这些参数组合成一个消息,然后使用 HMAC-SHA512 算法对消息进行签名。时间戳 (
timestamp
) 用于防止重放攻击。
hmac_key = api_secret.encode('utf-8')
message = message.encode('utf-8')
signature = hmac.new(hmac_key, message, hashlib.sha512).hexdigest()
return signature, timestamp
将 API 密钥密码和消息编码为 UTF-8 格式。然后,使用
hmac.new
函数创建一个 HMAC 对象,使用 SHA512 算法对消息进行哈希处理。将哈希结果转换为十六进制字符串,并返回签名和时间戳。
以下函数演示如何获取现货账户余额:
def get_spot_account_balances():
"""
获取现货账户余额.
"""
url_path = "/spot/accounts"
method = "GET"
query_string = ""
request_body = ""
该函数设置了 API 端点 (
/spot/accounts
)、HTTP 方法 (
GET
) 以及空的查询字符串和请求体。 因为是获取账户信息,所以请求体为空。
signature, timestamp = generate_signature(API_SECRET, method, url_path, query_string, request_body)
headers = {
"KEY": API_KEY,
"SIGN": signature,
"Timestamp": timestamp,
"Content-Type": "application/"
}
url = BASE_URL + url_path
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.()
else:
print(f"Error: {response.status_code}, {response.text}")
return None
调用
generate_signature
函数生成签名和时间戳。然后,创建一个包含 API 密钥、签名、时间戳和内容类型的 HTTP 头部。接下来,构建完整的 API URL,并使用
requests.get
函数发送 GET 请求。 如果响应状态码为 200,表示请求成功,将响应内容解析为 JSON 格式并返回。否则,打印错误信息并返回
None
。 需要注意的是Content-Type设置为 "application/" 以确保服务器正确解析数据。
if __name__ == "__main__":
balances = get_spot_account_balances()
if balances:
print(.dumps(balances, indent=4)) # 美化输出
此代码块首先调用
get_spot_account_balances
函数获取现货账户余额。 如果余额信息成功获取,则使用
.dumps
函数将其格式化为 JSON 字符串并打印到控制台,
indent=4
参数用于美化输出,使其更易于阅读。
请确保替换
YOUR_API_KEY
和
YOUR_API_SECRET
为您自己的 API 密钥和 API 密钥密码。 该示例代码演示了如何使用 Gate.IO API 获取现货账户余额。 可以根据需要修改代码,以访问其他 API 端点和功能。 使用API密钥务必注意安全性,定期更换,避免泄露,造成不必要的损失。