0

我有一个 Google 表单,人们可以在其中按作者和书名提交书籍。我想用它来检索 ISBN。

function atSubmitForm(e) {
  var formResponses = e.response;
  var itemResponses = formResponses.getItemResponses();
  var bookTitle = itemResponses[0].getResponse(); 
  var authorFirst = itemResponses[1].getResponse(); 
  var authorLast = itemResponses[2].getResponse(); 
 
  var url = "https://www.googleapis.com/books/v1/volumes?q=intitle:\"" + bookTitle + "\" inauthor:\"" + authorFirst + " " + authorLast + "\"" + "&country=CA";
  var urlEncoded = encodeURI(url);
  var response = UrlFetchApp.fetch(urlEncoded);
  var result = JSON.parse(response);
  var items = result.items;
  
  var item = items[0].volumeInfo;
  for (var i = 0; i < item.industryIdentifiers.length; i++) {
    var id = item.industryIdentifiers[i];
    if (id.type === "ISBN_13") {
      var isbn = id.identifier;
    } 
  }
}

显然,这不是全部功能,但 ISBN 给我带来了问题。它似乎并没有提取我所期望的信息。例如,Adrian Tchaikovsky的《 Children of Time 》一书会生成一个 urlEncoded = https://www.googleapis.com/books/v1/volumes?q=intitle:"Children+of+Time"+inauthor:"Adrian+Tchaikovsky "&country=CA,它会返回一个 isbn = 9780316452496。我不知道这个 ISBN 来自哪里,但它没有在 urlEncoded 页面上列出。

同样,杰克·凯鲁亚克的《在路上》会生成一个 urlEncoded = https://www.googleapis.com/books/v1/volumes?q=intitle:"On+the+Road"+inauthor:"Jack+Kerouac"&country=CA然后返回一个 isbn = 9780142437254,在上一页也找不到(即 urlEncoded)。

为什么它不从这些页面中提取第一个 ISBN,甚至根本不从这些页面中提取?

编辑:对于柴可夫斯基的时间之子,我期待 isbn = 9781447273318。对于凯鲁亚克的在路上,我期待 isbn = 9781101127575

4

0 回答 0