欧易OKX API调用次数查询指南:优化交易策略
如何查看欧易OKX API 的调用次数
在加密货币交易的世界里,API (应用程序编程接口) 扮演着至关重要的角色。它允许开发者和交易者编写自定义程序,自动化交易策略,并访问交易所的实时数据。欧易 OKX 交易所提供了一套功能强大的 API,供用户进行各种操作。然而,为了确保系统的稳定性和公平性,欧易 OKX 对 API 的调用频率进行了限制,也称为 "限频 (Rate Limit)"。了解如何查看 API 的调用次数,对于有效管理你的交易活动和避免不必要的限制至关重要。
为什么需要了解 API 调用次数?
- 避免被限频 (Rate Limiting): 频繁超出 API 调用限制(即速率限制)会导致你的请求被交易所或数据提供商拒绝。这会严重影响交易策略的执行、实时数据的获取以及关键信息的更新,导致错失交易机会或决策失误。了解 API 调用次数是避免被限频的基础。
- 优化程序性能与效率: 监控 API 调用次数可以帮助你识别代码中的性能瓶颈。例如,重复的 API 请求、不必要的循环调用或低效的数据处理都会导致调用次数增加。通过分析调用模式,你可以优化请求频率、调整数据获取策略,从而提高程序的整体性能和效率。
- 成本控制与预算管理: 某些 API 服务的使用可能涉及费用,尤其是在高频交易或大数据分析场景下。了解 API 调用次数和计费规则有助于你准确预估和控制相关成本,避免不必要的费用支出,并进行合理的预算管理和资源分配。
- 调试与问题排查 (Troubleshooting): 当程序出现异常行为时,API 调用次数信息可以作为重要的诊断依据。例如,如果程序突然停止响应或返回错误,API 调用次数超限可能是一个原因。通过查看调用日志和监控数据,你可以快速定位问题根源,例如是否是因为短时间内发起过多请求导致被拒绝,从而更快地解决问题。
欧易 OKX API 的限频机制
欧易 OKX 为了保障平台稳定性和公平性,防止恶意攻击和过度资源占用,实施了严格的 API 限频机制。该机制主要通过两种方式对用户的 API 请求进行限制:
- 每分钟请求数限制 (Requests Per Minute - RPM): 限制你的 API 密钥在每分钟内可以发送的请求总数。这意味着,如果你在短时间内发送了过多的请求,将会触发限频,导致部分请求被拒绝。不同的 API 端点,由于其功能和资源消耗不同,可能具有不同的 RPM 限制。例如,交易相关的 API 通常比获取公共数据的 API 有更严格的 RPM 限制。请务必查阅 OKX 官方 API 文档,了解每个端点的具体 RPM 限制。
- 权重限制 (Weight Limit): 每个 API 请求都被赋予一个权重值,权重值越高,意味着该请求对服务器资源的消耗越大,对限频的影响也越大。因此,频繁调用权重较高的 API 可能会更快地触发限频。例如,深度行情或历史数据的 API 请求通常权重较高,因为它们需要处理大量的数据。相比之下,获取账户余额或创建订单的 API 请求权重可能较低。合理规划你的 API 调用策略,尽量避免不必要的重复请求,可以有效降低权重消耗,从而避免触发限频。务必详细阅读 OKX API 文档中关于权重计算的说明,以便更好地管理你的 API 调用。
如何查看欧易 OKX API 的调用次数 (主要方法)
欧易 OKX 主要通过 API 响应头 (Response Headers) 来提供 API 调用次数和限频信息。你需要在你的程序中捕获 API 响应头,并解析其中的关键字段,以便监控你的 API 使用情况,并避免超出限频。
欧易 OKX 的限频策略旨在确保 API 的稳定性和公平性。通过监控 API 调用次数,你可以优化你的应用程序,使其更有效地利用 API 资源。
以下是一个通用步骤,说明如何在程序中查看欧易 OKX API 的调用次数:
- 发送 API 请求: 使用你的 API 密钥和相应的 API 端点发送请求。确保你已经正确配置了 API 密钥,并了解所请求 API 端点的具体参数和要求。
requests
库来发送请求并获取响应头:
import requests import
你的 API 密钥和密钥
在使用任何加密货币交易所的API时,API 密钥和密钥是至关重要的身份验证凭证。务必妥善保管它们,避免泄露,因为它们允许访问和控制您的账户。API 密钥 (
api_key
) 类似于用户名,而密钥 (
secret_key
) 则更像是密码,用于验证 API 请求的真实性和授权。
api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
在使用 API 密钥和密钥时,请注意以下安全事项:
- 不要公开分享: 永远不要在公共论坛、代码仓库(如 GitHub)或任何不安全的地方分享您的 API 密钥和密钥。
- 使用环境变量: 将 API 密钥和密钥存储在环境变量中,而不是直接嵌入到代码中。这可以防止密钥被意外泄露。
- 限制权限: 某些交易所允许您为 API 密钥设置权限。尽可能限制密钥的权限,使其只能执行所需的最小操作集。 例如,如果您只需要读取市场数据,则不要授予密钥提款权限。
- 定期轮换密钥: 定期更换您的 API 密钥和密钥,以降低密钥泄露的风险。
- 启用双重验证: 在您的交易所账户上启用双重验证 (2FA),即使您的 API 密钥泄露,也能增加额外的安全层。
- 监控 API 使用情况: 监控您的 API 使用情况,以便及时发现任何可疑活动。
API 端点 (例如,获取账户信息)
API 端点是与交易所服务器进行交互的关键接口,允许开发者以编程方式访问和管理其账户。例如,要获取 OKX 账户的余额信息,可以使用以下 API 端点:
api_endpoint = "https://www.okx.com/api/v5/account/balance"
此端点
"https://www.okx.com/api/v5/account/balance"
指向 OKX API 的特定路径,专用于检索用户的账户余额。 使用此端点需要进行身份验证,通常涉及 API 密钥和签名,以确保请求的安全性。成功身份验证后,服务器将返回包含账户余额详细信息的 JSON 格式数据。
实际调用此 API 端点时,需要构造一个 HTTP 请求 (通常是 GET 或 POST 请求),并在请求头中包含必要的身份验证信息。返回的数据将包含各种币种的余额信息,包括可用余额、冻结余额等等。为了有效地使用此端点,务必参考 OKX 官方 API 文档,其中详细说明了请求参数、身份验证方法和响应格式。
设置请求头,包含 API 密钥
在与加密货币交易所的API交互时,身份验证至关重要。 通常,你需要提供 API 密钥、密钥以及密码短语(如果已设置)。 这些信息需要包含在HTTP请求头中。 这样服务器才能验证请求的合法性并允许你访问受保护的资源。
以下示例展示如何构建包含必要的身份验证信息的请求头:
headers = {
"OK-ACCESS-KEY": api_key,
"OK-SECRET-KEY": secret_key,
"OK-PASS-PHRASE": "YOUR_PASS_PHRASE" # 如果你设置了资金密码
}
OK-ACCESS-KEY
通常是你的公开 API 密钥,用于标识你的账户。
OK-SECRET-KEY
是一个私密密钥,必须妥善保管,切勿泄露。
OK-PASS-PHRASE
是可选的,用于进一步增强安全性,特别是对于涉及资金操作的API调用。 请将
YOUR_PASS_PHRASE
替换为你实际设置的资金密码。
使用构建好的请求头,可以发起API请求,以下是一个示例,使用`requests`库发送GET请求:
try:
response = requests.get(api_endpoint, headers=headers)
response.raise_for_status() # 检查请求是否成功 (状态码 200)
api_endpoint
是你要访问的API端点的URL。
response.raise_for_status()
会检查HTTP响应状态码。 如果状态码不是200(表示成功),将引发一个HTTPError异常,从而允许你捕获和处理错误。
成功收到响应后,你可以访问响应头和响应数据:
# 获取响应头
headers = response.headers
print(.dumps(dict(headers), indent=4)) # 打印响应头
# 处理响应数据
data = response.()
print(.dumps(data, indent=4))
response.headers
包含服务器返回的HTTP响应头。 你可以使用
.dumps()
将其格式化为易于阅读的JSON格式并打印出来。
response.()
将响应主体解析为JSON对象,你可以对其进行进一步处理。
在与API交互时,错误处理至关重要。 网络问题、服务器错误或无效的请求都可能导致API调用失败。 使用
try...except
块可以优雅地处理这些错误:
except requests.exceptions.RequestException as e:
print(f"请求出错: {e}")
此代码段捕获所有
requests.exceptions.RequestException
类型的异常,该异常涵盖各种请求相关的问题。 然后,它会打印错误消息,帮助你调试问题。
X-RateLimit-Limit
: 表示你的 API 密钥在特定时间窗口 (通常是 1 分钟) 内的最大请求数或权重限制。 具体的含义取决于 API 端点。X-RateLimit-Remaining
: 表示在当前时间窗口内,你还可以发送的请求数或剩余的权重。X-RateLimit-Reset
: 表示当前时间窗口重置的时间 (通常是 Unix 时间戳)。
从响应头中提取限频信息
API限频是保护服务器免受滥用和恶意攻击的重要机制。很多加密货币交易所和数据提供商都会使用API限频来控制客户端的请求频率。要了解和管理你的API使用情况,你需要从响应头中提取限频信息。
通常,限频信息会包含在以下几个HTTP响应头中:
-
X-RateLimit-Limit
:表示在特定时间窗口内允许的最大请求数量。 -
X-RateLimit-Remaining
:表示当前时间窗口内剩余的可用请求数量。 -
X-RateLimit-Reset
:表示到下一个时间窗口重置为止的剩余秒数或Unix时间戳。
你可以使用编程语言(例如Python)来获取和解析这些响应头。
以下是一个Python示例,演示如何从响应头中提取限频信息:
import requests
response = requests.get("你的API端点")
headers = response.headers
limit = headers.get("X-RateLimit-Limit")
remaining = headers.get("X-RateLimit-Remaining")
reset = headers.get("X-RateLimit-Reset")
代码解释:
-
我们使用
requests
库向API端点发送一个GET请求。 -
然后,我们从响应对象中获取
headers
字典。 -
接下来,我们使用
headers.get()
方法从字典中提取X-RateLimit-Limit
、X-RateLimit-Remaining
和X-RateLimit-Reset
的值。
提取到这些值后,你可以将其打印出来或者用于你的应用程序逻辑中:
print(f"API Limit: {limit}")
print(f"API Remaining: {remaining}")
print(f"API Reset: {reset}")
请注意,不同的API提供商可能使用不同的响应头名称或格式来传递限频信息。你需要查阅API文档以了解具体的头名称和含义。例如,有些API可能使用
RateLimit-Limit
代替
X-RateLimit-Limit
。有些API的
X-RateLimit-Reset
返回的是Unix时间戳,需要转换为可读的时间格式。
务必遵守API的限频策略,避免超出限制。超出限制可能会导致你的请求被拒绝或者API密钥被禁用。
一些补充说明和最佳实践
- 查阅官方文档: 欧易 OKX 官方文档是了解 API 限频规则和权重的权威来源。仔细阅读文档,特别是关于每个 API 端点的速率限制说明,是至关重要的第一步。文档通常会详细说明不同 API 的调用频率限制、权重分配以及违规后的处理方式。
- 利用 API 客户端库: 针对多种编程语言,存在许多现成的 API 客户端库,它们简化了与欧易 OKX API 的交互。这些库通常内置了限频处理机制,能够自动管理 API 请求的频率,并在遇到限频错误时进行重试。它们还提供了更便捷的方法来查询剩余的调用次数等信息,方便开发者进行监控和管理。
- 实施指数退避算法 (Exponential Backoff): 当应用程序遭遇限频错误时,立即重试请求可能会进一步加剧限频问题。为了避免这种情况,建议采用指数退避算法。该算法会根据重试次数,逐步增加重试之间的延迟时间。例如,第一次重试延迟 1 秒,第二次延迟 2 秒,第三次延迟 4 秒,以此类推。这种方式能够有效地降低重试请求的频率,从而避免对 API 服务器造成过大的压力。
- 优化 API 调用: 尽可能减少不必要的 API 调用是降低限频触发几率的关键措施。分析应用程序的需求,并优化代码,只在真正需要数据时才调用 API。例如,对于不经常变化的市场数据,可以考虑将其缓存到本地,从而减少对实时数据 API 的请求频率。还可以利用批量请求功能,将多个请求合并为一个请求,以减少 API 调用次数。
- 利用 WebSocket API 获取实时数据: 对于需要实时市场数据的应用程序,例如交易机器人或实时图表应用,欧易 OKX 提供的 WebSocket API 是一个更高效的选择。WebSocket API 允许应用程序建立一个持久连接,并接收服务器推送的实时数据更新,而无需频繁地发送 API 请求。这大大降低了 API 调用次数,从而避免了限频问题。WebSocket API 通常还提供更低的延迟,可以满足对实时性要求较高的应用场景。
- 建立监控和告警机制: 建立完善的监控系统,定期检查 API 调用次数,并设置合理的告警阈值。当 API 调用次数接近或超过限制时,系统应及时发出告警,以便开发者能够及时采取措施,例如暂停某些功能或调整 API 调用策略。有效的监控和告警机制能够帮助开发者及时发现并解决限频问题,从而确保应用程序的稳定运行。可以考虑使用专门的监控工具或自定义脚本来实现监控和告警功能。
代码示例: Python (增强版,包含错误处理和更全面的依赖)
此示例展示了使用Python进行加密货币API交互的基本框架,并加入了异常处理和更清晰的依赖声明,以提升代码的健壮性和可维护性。
import requests
import
import time
import hmac
import hashlib
from urllib.parse import urlencode
依赖说明:
-
requests
: 用于发送HTTP请求,是与API交互的核心库。如果未安装,可以使用pip install requests
命令安装。 -
-
time
: 用于处理时间相关操作,例如添加延迟或生成时间戳。Python内置,无需额外安装。 -
hmac
和hashlib
: 用于生成API请求的签名,确保请求的安全性(如果API需要签名)。Python内置,无需额外安装。 -
urllib.parse
: 用于编码URL参数,确保参数传递的正确性。Python内置,无需额外安装。
错误处理:
以下代码片段展示了如何使用
try...except
块来捕获可能出现的异常,例如网络错误或API返回错误:
try:
response = requests.get(url)
response.raise_for_status() # 检查HTTP状态码,如果不是200则抛出异常
data = response.()
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
data = None
except .JSONDecodeError as e:
print(f"JSON解码错误: {e}")
data = None
except Exception as e:
print(f"其他错误: {e}")
data = None
完整示例(框架):
下面的框架展示了如何整合依赖、错误处理和基本的API请求:
import requests
import
import time
import hmac
import hashlib
from urllib.parse import urlencode
API_KEY = "YOUR_API_KEY" # 替换为你的API密钥
API_SECRET = "YOUR_API_SECRET" # 替换为你的API密钥
BASE_URL = "https://api.example.com" # 替换为你的 API 基础 URL
def create_signature(query_string, secret_key):
encoded_string = query_string.encode('utf-8')
secret = secret_key.encode('utf-8')
signature = hmac.new(secret, encoded_string, hashlib.sha256).hexdigest()
return signature
def get_data(endpoint, params=None, need_signature=False):
url = BASE_URL + endpoint
headers = {}
if params:
query_string = urlencode(params)
if need_signature:
signature = create_signature(query_string, API_SECRET)
params['signature'] = signature
url += "?" + query_string
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # 抛出 HTTPError,如果请求失败
return response.()
except requests.exceptions.RequestException as e:
print(f"API请求失败: {e}")
return None
except .JSONDecodeError as e:
print(f"JSON解码失败: {e}")
return None
# 示例用法:
# 获取市场数据 (假设API不需要签名)
market_data = get_data("/market/ticker", params={"symbol": "BTCUSDT"})
if market_data:
print(f"市场数据: {market_data}")
# 获取账户信息 (假设API需要签名)
params = {"timestamp": int(time.time() * 1000), "recvWindow": 5000}
account_info = get_data("/account", params=params, need_signature=True)
if account_info:
print(f"账户信息: {account_info}")
注意:
请务必替换
YOUR_API_KEY
和
YOUR_API_SECRET
为你自己的API密钥和秘钥。 根据具体的API文档调整代码,例如请求方法(GET, POST等),请求头,参数格式和签名方法。
你的 API 密钥、密钥与密码
在使用交易所API进行交易或数据获取时,API密钥、密钥和密码是至关重要的安全凭证,用于验证你的身份并授权访问你的账户。请务必妥善保管这些信息,切勿泄露给他人。
api_key = "YOUR_API_KEY"
api_key
是你的API密钥,也称为公钥。它用于标识你的身份,并与你的密钥配对使用。交易所会根据你的API密钥来识别你的请求,并决定是否授权你访问相关资源。
secret_key = "YOUR_SECRET_KEY"
secret_key
是你的密钥,也称为私钥。它与你的API密钥配对使用,用于对你的API请求进行签名。通过签名,交易所可以验证你的请求是否被篡改,确保请求的安全性。 密钥必须严格保密,任何泄露都可能导致你的账户被盗用。
passphrase = "YOUR_PASS_PHRASE" # 如果你设置了资金密码,否则留空
passphrase
是你的资金密码,有些交易所会要求你设置资金密码,用于保护你的资金安全。如果你的账户设置了资金密码,则需要在API请求中提供该密码。如果未设置,则将其留空。资金密码是另一层安全保障,用于防止未经授权的资金操作。
重要提示:
-
请将
YOUR_API_KEY
,YOUR_SECRET_KEY
和YOUR_PASS_PHRASE
替换为你实际的 API 密钥、密钥和资金密码。 - 请勿将这些信息存储在公共代码仓库中,或通过不安全的渠道传输。
- 强烈建议启用交易所提供的双重身份验证 (2FA),进一步提升账户安全性。
- 定期更换 API 密钥和密钥,降低安全风险。
API 端点 (例如,获取账户信息)
在加密货币交易平台,API 端点是开发者与平台交互的关键入口。 例如,要获取 OKX 账户的余额信息,可以使用以下 API 端点:
api_endpoint = "https://www.okx.com/api/v5/account/balance"
该 URL 代表 OKX 交易所 API 的 v5 版本中,用于访问账户余额信息的特定资源路径。 通过向此端点发送经过身份验证的 HTTP 请求,开发者可以获取账户中不同币种的余额数据。 准确使用和理解 API 端点对于构建自动化交易策略、数据分析工具和集成服务至关重要。 请务必参考官方 API 文档,了解请求方法(如 GET 或 POST)、所需的身份验证方式(如 API 密钥和签名)、请求参数以及返回数据的格式 (通常为 JSON)。
设置请求头,包含 API 密钥
为了安全地访问加密货币交易所的API,需要设置包含API密钥、密钥和密码短语的请求头。以下是如何使用Python实现的示例:
def get_headers(api_key, secret_key, passphrase):
"""
生成包含API密钥、密钥和密码短语的请求头。
参数:
api_key (str): 您的API密钥。
secret_key (str): 您的密钥。
passphrase (str): 您的密码短语。
返回:
dict: 包含身份验证信息的字典。
"""
return {
"OK-ACCESS-KEY": api_key,
"OK-SECRET-KEY": secret_key,
"OK-ACCESS-PASSPHRASE": passphrase
}
此函数创建了一个字典,其中包含交易所要求的API密钥、密钥和密码短语。这些信息将在每个API请求中发送,以验证您的身份并授权您访问受保护的资源。
发起 API 请求
以下是如何使用上述请求头发出API请求的示例:
import requests
import time
def make_api_request(api_endpoint, headers):
"""
向指定的API端点发出GET请求,并处理潜在的错误。
参数:
api_endpoint (str): API端点的URL。
headers (dict): 包含身份验证信息的请求头。
返回:
requests.Response: 如果请求成功,则返回响应对象;否则返回None。
"""
try:
response = requests.get(api_endpoint, headers=headers)
response.raise_for_status() # 检查响应状态码,如果不是200则抛出异常
return response
except requests.exceptions.RequestException as e:
print(f"请求出错: {e}")
return None
该函数使用
requests
库向指定的API端点发出GET请求。
response.raise_for_status()
方法检查响应状态码,如果不是200,则抛出异常,指示请求失败。这有助于捕获并处理API调用中的错误。
处理 API 速率限制
大多数交易所都实施了速率限制,以防止滥用其API。了解并处理这些限制对于避免被阻止至关重要。以下是如何提取和处理速率限制信息的示例:
def get_rate_limit_info(headers):
"""
从响应头中提取速率限制信息。
参数:
headers (dict): 响应头。
返回:
tuple: 包含限制、剩余请求数和重置时间的元组。
"""
limit = headers.get("X-RateLimit-Limit")
remaining = headers.get("X-RateLimit-Remaining")
reset = headers.get("X-RateLimit-Reset")
return limit, remaining, reset
此函数从响应头中提取
X-RateLimit-Limit
、
X-RateLimit-Remaining
和
X-RateLimit-Reset
头,这些头通常包含速率限制信息。
以下是如何根据剩余请求数和重置时间实现速率限制处理的示例:
def handle_rate_limit(remaining, reset):
"""
如果剩余请求数过低,则休眠至重置时间。
参数:
remaining (str): 剩余请求数。
reset (str): 重置时间(Unix时间戳)。
"""
if remaining is not None and int(remaining) < 5: # 例如,如果剩余请求数小于 5,则休眠
reset_time = int(reset)
current_time = int(time.time())
sleep_duration = reset_time - current_time + 1 # 加上 1 秒的缓冲
if sleep_duration > 0:
print(f"剩余请求数过低,休眠 {sleep_duration} 秒至重置时间...")
time.sleep(sleep_duration)
此函数检查剩余请求数。如果低于某个阈值(例如5),它将计算到重置时间为止的休眠持续时间,并使用
time.sleep()
函数暂停执行。这有助于避免超过速率限制并确保您的应用程序继续正常运行。
主程序
主程序入口点,用于启动API请求流程。
if __name__ == "__main__":
确保代码块仅在脚本直接运行时执行,而不是作为模块导入时执行。这是Python程序的标准入口。
headers = get_headers(api_key, secret_key, passphrase)
调用
get_headers
函数创建包含身份验证信息的HTTP头部。API密钥 (
api_key
)、密钥 (
secret_key
) 和密码 (
passphrase
) 用于安全地验证请求者的身份,这些凭据是访问API的必需品。生成的headers会被添加到后续的HTTP请求中,用于认证和授权。
response = make_api_request(api_endpoint, headers)
使用构造的头部信息向指定的API端点 (
api_endpoint
) 发送请求。
make_api_request
函数封装了实际的HTTP请求逻辑,通常使用
requests
库或其他HTTP客户端库来实现。API端点定义了要访问的具体API资源,headers参数包含了身份验证信息,确保请求能够被API服务器正确处理。
if response:
limit, remaining, reset = get_rate_limit_info(response.headers)
print(f"API Limit: {limit}")
print(f"API Remaining: {remaining}")
print(f"API Reset: {reset}")
data = response.()
print(.dumps(data, indent=4))
handle_rate_limit(remaining, reset)
在成功收到API响应后,进行以下处理:
if response:
首先检查
response
对象是否存在,确保API请求成功,避免后续操作因空响应而产生错误。
limit, remaining, reset = get_rate_limit_info(response.headers)
从响应头部提取限频信息。API通常通过HTTP头部返回限频信息,包括总的请求限制 (
limit
)、剩余请求数 (
remaining
) 和限频重置时间 (
reset
)。
get_rate_limit_info
函数负责解析这些头部信息,将其转化为可用的数值。
print(f"API Limit: {limit}")
,
print(f"API Remaining: {remaining}")
,
print(f"API Reset: {reset}")
将提取到的限频信息打印到控制台,方便开发者监控API的使用情况。这有助于及时发现并处理限频问题,避免程序因超出限频而中断。
data = response.()
将API响应内容解析为JSON格式的数据。大多数加密货币API使用JSON格式传输数据。
response.()
方法将响应体中的JSON字符串解析为Python字典或列表,方便后续的数据处理和分析。
print(.dumps(data, indent=4))
使用
.dumps
函数将解析后的JSON数据格式化并打印到控制台。
indent=4
参数指定缩进量为4个空格,使JSON数据更易于阅读。这有助于开发者调试和理解API返回的数据结构。
handle_rate_limit(remaining, reset)
调用
handle_rate_limit
函数处理限频情况。该函数根据剩余请求数和限频重置时间,决定是否需要暂停程序,以避免超出限频。限频处理是保证程序稳定运行的重要环节。
这个更详细的例子包括错误处理、限频信息提取,以及一个简单的限频处理函数,它会在剩余请求数低于某个阈值时暂停程序,直到限频重置。记住替换
"YOUR_API_KEY"
,
"YOUR_SECRET_KEY"
和
"YOUR_PASS_PHRASE"
为你的实际凭证。务必妥善保管这些凭证,避免泄露,防止未经授权的访问。