我正在尝试向Google Apps脚本脚本中的Google Street View Publish API发出HTTP GET请求,以获取照片列表并将有关它们的元数据保存到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);
并在脚本的清单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仪表板上的数字如下:
试图创建另一个API KEY
并在脚本中使用它,但还是没有运气。
此外,当尝试从Google APIs Explorer测试API并授权并执行时,它也会给我响应代码200
以及一个空的JSON对象。
以前一直在工作,但是现在不行了!
这里可能是什么问题?
如评论中所建议,我试图:
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 APIs Explorer和Google Apps脚本中脚本的访问。由于这个原因,当尝试再次运行它时,它打开了一个弹出窗口,再次询问授权/权限,这也是我授予的。
试图退出Google帐户并清除浏览器的缓存。
但是,仍然有相同的空JSON对象响应!
答案 0 :(得分:0)
文档说pageSize
默认为100。情况并非如此。如果指定pageSize
参数,它将返回带有照片的响应。