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

使用Google Books API无法获取出版商信息,求Google Sheets适配方案

解决Google Books API获取出版商信息的问题

问题分析

你当前使用的脚本未从Google Books API的响应中提取publisher字段,同时价格信息需要从saleInfo节点下获取,而非volumeInfo。

修改后的核心代码

找到脚本中的getBookInfo函数,替换为以下逻辑(保留原有功能的同时添加出版商和价格提取):

function getBookInfo(isbn) {
  var apiUrl = `https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`;
  var response = UrlFetchApp.fetch(apiUrl);
  var bookData = JSON.parse(response.getContentText());

  if (bookData.totalItems === 0) {
    return ["无匹配书籍", "N/A", "N/A", "N/A"];
  }

  var volumeInfo = bookData.items[0].volumeInfo;
  var saleInfo = bookData.items[0].saleInfo || {};
  
  // 提取基础信息
  var title = volumeInfo.title || "N/A";
  var authors = volumeInfo.authors ? volumeInfo.authors.join(", ") : "N/A";
  // 新增出版商提取
  var publisher = volumeInfo.publisher || "N/A";
  // 提取价格信息(处理无价格的情况)
  var price = saleInfo.retailPrice?.amount || "N/A";
  var currency = saleInfo.retailPrice?.currencyCode || "";
  var formattedPrice = price !== "N/A" ? `${price} ${currency}` : "N/A";

  return [title, authors, publisher, formattedPrice];
}

关键修改说明

  • 出版商提取:直接从volumeInfo.publisher字段获取,用|| "N/A"处理无数据的情况
  • 价格处理:价格数据位于saleInfo.retailPrice节点下,使用可选链操作符?.避免因无销售信息导致的脚本报错,同时格式化价格显示
  • 统一空值返回:确保无匹配书籍时,所有列都返回默认值,避免表格出现错位

部署注意事项

  1. 打开Google表格,进入「工具 > 脚本编辑器」
  2. 替换原getBookInfo函数内容
  3. 保存并重新运行脚本,确保表格中对应列(如D列放出版商、E列放价格)能正确接收数据
  4. 注意Google Books API的免费调用限额,避免短时间内大量请求触发限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:47:03