google-apps-script - Google API 返回响应 200 空 JSON

标签 google-apps-script google-cloud-platform google-api google-street-view google-streetview-publish

我正在尝试向 Google Street View Publish API 发出 HTTP GET 请求,在 Google Apps 脚本脚本中,获取照片列表并将有关它们的元数据保存到 Google 电子表格中。

我在脚本中使用的用于联系 API 的代码:

var url = 'https://streetviewpublish.googleapis.com/v1/photos?fields=nextPageToken%2Cphotos&key=' + API_KEY;

var response = UrlFetchApp.fetch(url, {
    muteHttpExceptions: true,
    headers: {
        //the accessToken is borrowed from the Apps Script Infrastructure `ScriptApp.getOAuthToken()`
        //source: https://www.youtube.com/watch?v=aP6pxK3jexc
        Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
    }
});
console.log('API response:\n' + response);

并在脚本的 list oauthscopes.json 文件中包含街景身份验证:

...
"oauthScopes": [
  "https://www.googleapis.com/auth/streetviewpublish", 
  "https://www.googleapis.com/auth/script.external_request", 
  "https://www.googleapis.com/auth/spreadsheets"
]
...

一直使用基于时间的触发器每 15 分钟运行一次脚本,它已经正常工作了几个小时,并返回一个包含帐户中照片的 JSON 对象,直到API 停止返回响应,现在仅返回一个空 JSON 对象 {}

我认为我没有消耗 API 使用的报价,我在 GCP 仪表板上的数字如下:

Quote Numbers 1

Quote Numbers 2

尝试创建另一个 API KEY 并在脚本中使用它,但仍然没有成功。

此外,当尝试从 Google APIs Explorer 测试 API 时、授权并执行,它还为我提供了带有空 JSON 对象的响应代码 200 。 这以前一直有效,但是现在不行了!

这里可能出现什么问题?


编辑:

根据评论中的建议,我尝试:

  • 使用或不使用 API key 和其他参数调用 API 端点,如下所示:

https://streetviewpublish.googleapis.com/v1/photos?fields=nextPageToken%2Cphotos&key=' + API_KEY

https://streetviewpublish.googleapis.com/v1/photos?key=' + API_KEY

https://streetviewpublish.googleapis.com/v1/photos

  • 此外,还尝试从 account security checkup 撤销对 Google API Explorer 和 Google Apps 脚本上的脚本的访问权限。 。因此,当尝试再次运行它时,它会打开一个弹出窗口再次请求授权/许可,我也授予了该授权/许可。

  • 尝试退出 Google 帐户并清除浏览器缓存。

然而,仍然是相同的空 JSON 对象响应!


编辑2:

  • 两天前还停止了脚本的基于时间的触发器,但仍然没有成功!

最佳答案

文档说 pageSize 默认为 100。但事实并非如此。如果您指定 pageSize 参数,它将返回带有照片的响应。

关于google-apps-script - Google API 返回响应 200 空 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625688/

相关文章:

google-apps-script - 按钮单击仅适用于 Windows,不适用于 Android 移动工作表

google-cloud-platform - Bigquery : Some rows belong to different partitions rather than destination partition

c# - 访问 token Google+

javascript - Javascript 中的 Google API

google-apps-script - 格式化绝对值的脚本不起作用

xml - 在 Google Apps 脚本中嵌套 HtmlTemplate

javascript - replaceText() 正则表达式 "not followed by"

google-cloud-platform - Dataproc 批量约束违规

spring-boot - 上游连接错误或在 header 之前断开/重置。重置原因 : connection failure. Spring Boot 和 java 11

php - 从 Google 获取当前位置,无需将用户送走进行身份验证