常见问题
这里收集了开发者最常遇到的问题。如果没有找到你的答案,可以通过应用创建时留下的对接群反馈。
如何申请 app_id 与 app_secret?
进入 管理中心 · 创建应用 提交应用信息, 平台运营会在 1-3 个工作日内完成审核,审核通过后你将在 我的应用页面查看到 app_id 与 app_secret。
什么场景下需要使用 PKCE 模式?
平台默认使用 Secret 模式接入,即客户端持有 app_id + app_secret 直接换取 token。 如果你的应用是完全公开分发(如无后端支撑的纯移动 App、SPA 等) 且无法通过 Keychain / KeyStore / 混淆等方式安全保护 app_secret, 可选用 PKCE 模式:客户端无需持有 app_secret,通过 code_verifier 规避 app_secret 泄露风险; 即使授权码在跳转过程中被抓包截获,攻击者也无法在没有 code_verifier 的情况下换取 token。
access_token 过期后如何处理?
有两种方式:
- 使用 refresh_token 调用
/api/sns/v1/oauth2/refresh_token接口换取新的 access_token(无需用户重新授权) - 如果 refresh_token 也过期,则需要引导用户重新授权
SDK 内部已实现自动刷新逻辑,直接调用 getCurrentAT()
即可,SDK 会判断过期状态并自动处理。
为什么调用 refresh_token 后过期时间没有延长?
这是有意为之的安全设计。如果每次刷新都延长 refresh_token 过期时间, 一旦 refresh_token 被窃取,攻击者可以无限续期。因此我们规定: refresh_token 从首次颁发起 180 天有效,到期后必须重新授权。
同一个用户在我的应用里为什么 open_id 每次都一样,但和别的应用不一样?
open_id 是根据 userId + app_id + 平台盐值 MD5 哈希生成,
对同一用户在同一应用下永远一致,但在不同应用下不一样。这样既保证了
应用内的用户身份稳定性,又避免了跨应用的用户身份泄露。
如何跨应用识别同一用户(unionId)?
unionId 能力正在规划中,将于后续版本开放。届时同一主体下的多个 app 可以通过 unionId 打通用户身份。当前版本请通过用户主动绑定的方式识别。
接口调用有频率限制吗?
为了保护平台稳定性,所有开放接口都有调用频率限制,默认按 接口 + app_id
维度限流。常规业务不会触发限流;如果你的业务预期调用量较大,请通过应用创建时留下的对接群联系我们申请提升配额。
测试环境和生产环境的 app_id 通用吗?
不通用。测试环境和生产环境是完全隔离的,你会分别拿到两套 app_id / app_secret。上线前请确保客户端已切换到生产环境的凭证与域名。
用户可以解除对我的应用的授权吗?
可以。用户在小红书 App 的「账号与安全 → 已授权的应用」中可以查看和解除对任何应用的授权。 解除后你的应用持有的 access_token / refresh_token 立即失效,需要引导用户重新授权。
如何联系技术支持?
你可以通过以下方式获得帮助:
- 应用创建时留下的对接群会有专属技术支持
- 查看 错误码 与本页 FAQ 是否有直接答案