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

如何使用Google Content API自定义批量请求?Node.js客户端数据获取问题

解决Google Content API customBatch仅返回kind字段的问题

嘿,我来帮你搞定这个问题!你现在调用datafeedstatuses.custombatch返回200状态码,但只有kind字段,没拿到实际的数据feed状态信息,大概率是请求配置或者参数有遗漏,咱们一步步来调整:

1. 替换占位符为真实有效ID

你代码里的merchantId和datafeedId写的是"myId",这肯定不行啊!得把它们替换成你实际的商家ID和数据feed ID——这俩是API定位具体资源的关键,不填真实值的话,API只能返回最基础的响应结构,没法给你具体数据。

2. 明确指定需要返回的字段

Google的很多API默认不会返回所有字段,只会返回最核心的元数据(比如这里的kind)。你得在每个batch entry里加上fields参数,明确告诉API你要哪些数据。比如你需要数据feed的状态、处理错误、最后上传时间这些信息,就可以这么写:

fields: "entries(id,status,datafeedId,processingErrors,lastUploadDate)"

3. 访问响应的正确层级

别忽略了customBatch响应的结构!实际的结果数据是嵌套在res.data.entries数组里的,而不是直接在根节点。你之前打印res.data只能看到外层的kind,要拿到单个请求的结果,得访问res.data.entries[0](因为你只传了一个batch entry)。

调整后的完整代码示例

把这些点整合起来,修改后的代码应该是这样的:

client.datafeedstatuses.custombatch({
  entries: [
    {
      merchantId: "你的真实商家ID",
      datafeedId: "你的真实数据feed ID",
      method: 'get',
      batchId: 1,
      fields: "entries(id,status,datafeedId,processingErrors,lastUploadDate)"
    }
  ]
})
.then((res) => {
  // 格式化输出完整响应,方便查看结构
  console.log(JSON.stringify(res.data, null, 2));
  // 拿到具体的状态数据
  const datafeedStatus = res.data.entries[0];
  console.log("数据feed状态详情:", datafeedStatus);
  return datafeedStatus;
})
.catch((err) => {
  console.error("获取数据feed状态出错:", err);
});

额外检查点

  • 确认你的客户端已经完成了正确的授权(OAuth2或服务账号),并且拥有访问Content API for Shopping的权限——虽然返回200说明授权通过,但权限不足也可能导致返回空数据。
  • 检查客户端初始化时指定的API版本是否正确(Content API常用v2.1),不同版本的参数和响应结构可能有差异。

按这个方法调整后,应该就能拿到你想要的数据feed状态信息啦!

内容的提问来源于stack exchange,提问作者Brett Hadley

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:59:53