You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Coinspot API开发Python交易机器人时的密钥认证问题

Coinspot API认证失败(401/无效nonce)修复方案

问题原因分析

  1. API密钥格式错误
    你将api_key定义为字节串(b""),但请求头中的key字段需要传递字符串类型值,字节串会导致服务器无法正确识别密钥,触发401认证失败。

  2. Payload传递位置错误
    Coinspot API要求POST请求的参数(包括nonce)放在请求体中,而你使用params=payload将参数拼接到URL上,服务器无法读取到正确的nonce,因此返回"invalid/missing nonce"错误。

修正后的代码

import requests
import hmac
import hashlib
import time
import json

# API密钥用字符串,无需加b前缀
api_key = "AAA-BBB-CCC"
# 密钥保持字节串格式,符合HMAC计算要求
secret = b"AAA-BBB-CCC"
url = "https://www.coinspot.com.au/api/v2/ro/status"

payload = {
    'nonce': int(time.time() * 1000)
}

payload_json = json.dumps(payload)

# 签名计算逻辑不变
sign = hmac.new(secret, payload_json.encode(), digestmod=hashlib.sha512).hexdigest()

headers = {
    'Content-Type': 'application/json',
    'key': api_key,
    'sign': sign,
}

# 使用json参数传递请求体,而非params
response = requests.post(url=url, headers=headers, json=payload)

print(response.text)

额外注意事项

  • 确认在Coinspot官网生成的API密钥已启用对应权限,且密钥未泄露
  • Nonce必须是严格递增的数值,毫秒时间戳可满足大部分场景,若短时间内频繁请求,可在时间戳基础上追加计数器确保唯一性
  • 避免硬编码密钥,建议通过环境变量读取敏感信息

内容的提问来源于stack exchange,提问作者Josh Trapman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:52:34