# DNSPod 技能更新总结 - 恢复腾讯云 API 3.0 ## 📅 更新时间 2026-03-01 16:27 GMT+8 ## 🎯 更新内容 ### 恢复使用腾讯云 API 3.0 **原因:** - 用户已找到正确的 SecretId 和 SecretKey - 腾讯云 API 3.0 支持 CAM 权限和子账号 - 与腾讯云产品深度集成 **变更:** - ✅ 认证方式:DNSPod Token → TENCENT_SECRET_ID/TENCENT_SECRET_KEY - ✅ API 端点:dnsapi.cn → dnspod.tencentcloudapi.com - ✅ 签名方式:login_token → TC3-HMAC-SHA256 - ✅ 脚本重写:使用正确的腾讯云 API 3.0 签名 ## 📝 已更新的文件 ### 核心脚本 - ✅ `scripts/deploy_record.py` - 完全重写,使用 TC3-HMAC-SHA256 签名 ### 配置文件 - ✅ `.env` - 恢复为腾讯云密钥配置 - ✅ `.env.example` - 恢复为腾讯云配置模板 ### 文档 - ✅ `SKILL.md` - 更新为腾讯云 API 3.0 说明 ## 🔑 配置方式 ### 正确的配置格式 ```bash # SecretId (以 AKID 开头) TENCENT_SECRET_ID=AKIDxxxxxxxxxxxxxxxx # SecretKey (32 位字符串) TENCENT_SECRET_KEY=xxxxxxxxxxxxxxxx ``` ### 获取密钥步骤 1. 访问:https://console.cloud.tencent.com/cam/capi 2. 登录腾讯云控制台 3. 进入 **访问管理** → **访问密钥** → **API 密钥管理** 4. 点击 **新建密钥** 或查看现有密钥 5. 复制 SecretId 和 SecretKey 6. 填入 `.env` 文件 ## 🚀 使用示例 ### 基本用法 ```bash cd /root/.openclaw/workspace/skills/DNSPod-Skill # 配置密钥 vim .env # 填入 TENCENT_SECRET_ID 和 TENCENT_SECRET_KEY # 测试 API python scripts/list_records.py --domain example.com # 部署记录 python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.4 ``` ## 📊 签名实现 ### TC3-HMAC-SHA256 签名步骤 1. **规范请求 (CanonicalRequest)** ``` POST / content-type:application/json host:dnspod.tencentcloudapi.com content-type;host HashedRequestPayload ``` 2. **待签名字符串 (StringToSign)** ``` TC3-HMAC-SHA256 Timestamp Date/dnspod/tc3_request HashedCanonicalRequest ``` 3. **计算签名 (Signature)** ``` secret_date = HMAC-SHA256(TC3 + SecretKey, Date) secret_service = HMAC-SHA256(secret_date, "dnspod") secret_signing = HMAC-SHA256(secret_service, "tc3_request") Signature = HMAC-SHA256(secret_signing, StringToSign) ``` 4. **Authorization 头** ``` TC3-HMAC-SHA256 Credential=SecretId/Date/dnspod/tc3_request, SignedHeaders=content-type;host, Signature=Signature ``` ## ✅ 优势 1. **CAM 权限管理** - 支持子账号和权限控制 2. **腾讯云集成** - 与其他腾讯云服务协同 3. **全面文档** - 详细的 API 文档和错误码 4. **SDK 支持** - 官方 SDK 和工具 ## ⚠️ 注意事项 1. **密钥安全** - SecretId 以 AKID 开头 - SecretKey 是 32 位字符串 - 不要提交到 Git 2. **签名正确性** - 使用 SERVICE = "dnspod" (不是 API_VERSION) - Credential Scope: Date/Service/tc3_request - 时间戳使用 UTC 时间 3. **API 限制** - 遵循 API 调用频率限制 - 避免短时间内大量请求 ## 🔄 版本历史 | 版本 | 日期 | API | 状态 | |------|------|-----|------| | 1.0 | 2026-03-01 | 腾讯云 API 3.0 | 初始版本 | | 2.0 | 2026-03-01 | DNSPod API 2.0 | 短暂使用 | | 3.0 | 2026-03-01 | 腾讯云 API 3.0 | 当前版本 ✅ | ## 📞 相关文档 - [腾讯云 API 3.0 文档](https://cloud.tencent.com/document/product/1427) - [签名方法 v3](https://cloud.tencent.com/document/product/1427/56189) - [API 密钥管理](https://console.cloud.tencent.com/cam/capi) - [API Explorer](https://console.cloud.tencent.com/api/explorer) --- **更新者**: OpenClaw **日期**: 2026-03-01 **状态**: ✅ 已完成,等待测试 **API**: 腾讯云 API 3.0 (TC3-HMAC-SHA256)