我有一个用于表格的 Google Apps 脚本,它向 Google Books API 发出请求,以按书名/作者查找 ISBN,并且在脚本编辑器中测试时,这些请求可靠地工作,但是当我在电子表格本身失败,并出现以下错误:
Request failed for https://www.googleapis.com/books/v1/volumes?q=Deedy%2C%20Carmen%20Agra%2014%20Cows%20for%20America returned code 403. Truncated server response: { "error": { "errors": [ { "domain": "global", "reason": "unknownLocation",
"message": "Cannot determine user location for geogra... (use muteHttpExceptions option to examine full response) (line 55).
这是在脚本编辑器中使用相同数据成功运行相同函数的执行记录:
[16-08-05 14:39:09:772 EDT] Starting execution
[16-08-05 14:39:10:558 EDT] UrlFetchApp.fetch([https://www.googleapis.com/books/v1/volumes?q=Deedy%2C%20Carmen%20Agra%2014%20Cows%20for%20America]) [0.778 seconds]
[16-08-05 14:39:10:559 EDT] HTTPResponse.getResponseCode() [0 seconds]
[16-08-05 14:39:10:559 EDT] HTTPResponse.getContentText() [0 seconds]
[16-08-05 14:39:10:569 EDT] Logger.log([found title match for '%s': '%s', [14 Cows for America, 14 Cows for America]]) [0 seconds]
[16-08-05 14:39:10:583 EDT] Logger.log([result: %s, [9781561454907]]) [0 seconds]
[16-08-05 14:39:10:584 EDT] Execution succeeded [0.804 seconds total runtime]
如果相关的话,我已经提供了源代码。
URL Fetch 服务使用 Google 的网络基础设施 效率和扩展目的。
并且“Google Books API 结果受到服务器或客户端应用程序 IP 地址的限制”([doc 对此:
var isbnEndpoint = "https://www.googleapis.com/books/v1/volumes?country=US&q=";