帮助中心SDK文档 › 常见集成问题
SDK

常见集成问题 FAQ

汇总开发者在接入翠鸟 SDK 过程中最常遇到的问题与解决方案

认证与连接

Q初始化 SDK 后调用任何方法都返回 401 错误,怎么排查?

401 错误表示 API Key 无效或未正确传入。请按以下步骤排查:

  • 确认使用的是控制台 — 开发者设置 中显示的完整 Key(包含 ck_live_ck_test_ 前缀)
  • 检查 Key 是否已被撤销(控制台 — API Keys 列表中状态应为"活跃")
  • 确认环境变量名称拼写正确,运行 echo $CUINIAO_API_KEY 验证是否正确加载
  • 注意测试密钥(ck_test_)只能用于开发环境,生产请求需使用生产密钥
Q在企业内网环境下 SDK 无法连接到 API,如何配置代理?

SDK 支持通过 Builder 模式配置 HTTP 代理:

// Java CuiniaoClient client = new CuiniaoClient.Builder() .apiKey("ck_live_xxx") .proxy("http://proxy.internal.company.com", 8080) .build(); # Python client = CuiniaoClient( api_key="ck_live_xxx", proxy="http://proxy.internal.company.com:8080" )

如果代理需要认证,额外传入 proxyUsernameproxyPassword 参数。

QSDK 请求超时了,默认超时时间是多少?如何调整?

默认连接超时为 5秒,读取超时为 30秒。对于上传大文件,建议适当增大读取超时:

// Java - 调整超时 CuiniaoClient client = new CuiniaoClient.Builder() .apiKey("ck_live_xxx") .connectTimeoutSeconds(10) .readTimeoutSeconds(120) // 上传大文件时建议设为120秒 .build();

数据与功能

Q为什么通过 API 上传的内容状态一直是 draft,访客无法访问?

通过 API 创建的内容默认为 draft 状态,需要显式发布才能对外访问。有两种方式发布:

  • 调用发布接口:POST /v1/resources/{id}/publish
  • 创建时在请求体中加入 "auto_publish": true 参数(v3.1.0+ 支持)
// 创建时直接发布(Java) client.resources().create( CreateRequest.builder() .title("营销白皮书") .type("article") .autoPublish(true) .build() );
Q如何拉取所有线索,API 有数量限制吗?

单次请求最多返回 100条线索。如需获取全部数据,请使用游标分页:

# Python - 游标分页获取全部线索 all_leads = [] cursor = None while True: resp = client.leads.list(limit=100, cursor=cursor) all_leads.extend(resp["data"]) cursor = resp.get("next_cursor") if not cursor: break print(f"共获取 {len(all_leads)} 条线索")
QWebhook 签名验证总是失败,可能是什么原因?

签名验证失败的常见原因:

  • 请求体被框架预处理:签名基于原始请求体计算,Express.js 需用 express.raw() 而非 express.json() 接收请求
  • Signing Secret 使用错误:应使用 Webhook 端点创建时返回的 signing_secret,而不是 API Key
  • 时间戳过期:翠鸟会拒绝时间戳与当前时间相差超过5分钟的请求,确保服务器时间同步(NTP)

详细验证逻辑请参阅 签名验证文档

Q在 Spring Boot 项目中如何将 CuiniaoClient 注入为 Bean?

建议通过配置类创建单例 Bean,避免重复初始化连接池:

@Configuration public class CuiniaoConfig { @Value("0") private String apiKey; @Bean @Singleton public CuiniaoClient cuiniaoClient() { return new CuiniaoClient.Builder() .apiKey(apiKey) .build(); } }

application.properties 中配置:cuiniao.api-key=

QSDK 在高并发场景下频繁出现连接池耗尽错误,如何优化?

默认连接池最大并发为 20。高并发场景建议:

  • 调大连接池:.maxConnections(50)
  • 使用异步 API(*Async 方法)配合线程池,避免同步阻塞
  • 对批量操作使用 Batch 接口而非循环调用单条接口
  • 合理设置请求超时,避免慢请求长时间占用连接

详细优化方案请参阅 性能优化指南