我正在Google电子表格代码编辑器中编写Google应用脚本。我想从Google Analytics中提取一些必须使用GA API v4的数据。我知道Google应用脚本中支持Analytics API但只支持v3版本。
所以我按照本指南Google Apps Script - External API并使用此库googlesamples/apps-script-oauth2来执行oauth2。
我确信我已在API控制台中启用了Analytics V4 API,并获得了正确的客户端ID和密码。在auth2之后,我编写了访问数据的代码
.sendPluginResult()
然后我收到错误http响应
var payload = {'reportRequests' : [
{
'metrics' : [{'expression':'ga:users'}],
'viewId' : 'xxxxxxxx',
'dateRages' : [{'startDate':'2016-10-01','endDate':'2016-10-10'}]
}
]};
var options = {
'method' : 'post',
'headers': {
'contentType': 'application/json',
'Authorization': 'Bearer ' + service.getAccessToken()
},
'payload' : payload,
'muteHttpExceptions':true
};
var resp = UrlFetchApp.fetch("https://analyticsreporting.googleapis.com/v4/reports:batchGet", options);
Logger.log(resp.getContentText());
我做错了什么?错误信息是什么意思?
谢谢!
答案 0 :(得分:2)
两个潜在问题:
错误说明INVALID_ARGUMENT
。您的有效负载包含dateRages
,其应为dateRanges
,否则由于拼写错误而无法将其识别为有效请求。
请参阅此answer regarding passing JSON data:如果您希望传递Content-Type application/json
的数据,则需要为payload
参数提供字符串,而不是JS对象。
而不是:
// JS Object, by default will be encoded as formdata (not desired)
'payload' : payload
使用:
// Convert JS Object to JSON string
'payload' : JSON.stringify(payload)
希望这有帮助