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

关于Garden沙箱调用Consumer API /cards端点的问题咨询

Garden沙箱调用/cards端点返回null的解决方法

一、给沙箱账户添加测试卡片

  • 登录Garden沙箱后台,进入你正在测试的用户账户页面
  • 找到卡片管理入口(通常在「账户」或「测试数据」菜单下)
  • 选择添加测试卡片,使用沙箱支持的标准测试卡号(比如4111111111111111这类通用测试卡,无需真实卡信息)
  • 提交后等待1-2分钟,让沙箱完成数据同步

二、确认配置与调用正确性

  • 你配置的两个权限范围是对的,但要确认获取accessToken时,这两个scope确实被包含在内——可以用JWT解析工具解码token,查看payload里的权限列表
  • 检查请求路径:确保consumerApiPath末尾带有斜杠,或者拼接时补全users/路径(比如${consumerApiPath}users/${userId}/cards),避免路径拼接错误
  • 确认userId是沙箱中已激活的有效用户ID,不要用错误的测试ID

三、关于未掩码卡片详情

目前Garden沙箱中,未掩码卡片的获取需要额外的cardcontrols.full权限,且这个权限一般需要在正式环境中通过合规申请才能开放,沙箱测试阶段通常只提供掩码卡片的接口支持,相关细节可以在Garden的开发者后台权限说明里找到

代码优化建议(可选)

给你的代码加上错误处理,方便排查问题:

// Cards: /users/{userId}/cards
async function getCards(consumerApiPath, userId, accessToken) {
  try {
    // 补全users路径,避免拼接错误
    const requestUrl = `${consumerApiPath.replace(/\/$/, '')}/users/${userId}/cards`;
    const cardApiResponse = await fetch(requestUrl, {
      method: 'GET',
      headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    
    if (!cardApiResponse.ok) {
      throw new Error(`请求失败: ${cardApiResponse.status} - ${cardApiResponse.statusText}`);
    }
    
    const cardApiJson = await cardApiResponse.json();
    // 返回空数组替代null,避免后续逻辑报错
    return cardApiJson.cards || [];
  } catch (err) {
    console.error('获取卡片出错:', err);
    throw err;
  }
}

内容的提问来源于stack exchange,提问作者Bryan Sauve

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:22:23