Javascript Analytics API v4无效json有效负载错误
我正在谷歌电子表格代码编辑器中编写谷歌应用程序脚本。我想从谷歌分析中提取一些数据,这些数据必须使用GA API v4。我知道Google apps脚本中有内置的分析API支持,但只有v3版本 因此,我遵循本指南并使用此库来执行oauth2 我确信我已经在API控制台中启用了Analytics V4 API,并获得了正确的客户端ID和密码。auth2之后,我编写了访问数据的代码Javascript Analytics API v4无效json有效负载错误,javascript,google-apps-script,google-analytics-api,google-spreadsheet-api,Javascript,Google Apps Script,Google Analytics Api,Google Spreadsheet Api,我正在谷歌电子表格代码编辑器中编写谷歌应用程序脚本。我想从谷歌分析中提取一些数据,这些数据必须使用GA API v4。我知道Google apps脚本中有内置的分析API支持,但只有v3版本 因此,我遵循本指南并使用此库来执行oauth2 我确信我已经在API控制台中启用了Analytics V4 API,并获得了正确的客户端ID和密码。auth2之后,我编写了访问数据的代码 var payload = {'reportRequests' : [ { 'metrics'
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());
然后我得到了一个错误的http响应
[16-10-30 21:25:51:325 PDT] {
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"reportRequests\": Cannot bind query parameter. 'reportRequests' is a message type. Parameters can only be bound to primitive types.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"description": "Invalid JSON payload received. Unknown name \"reportRequests\": Cannot bind query parameter. 'reportRequests' is a message type. Parameters can only be bound to primitive types."
}
]
}
]
}
}
我做错了什么?错误消息是什么意思
谢谢大家! 两个潜在问题:
无效\u参数
。您的有效负载包含dateRages
,它应该是dateRanges
,否则由于输入错误,它将不会被识别为有效请求application/json
的数据,则需要向payload
参数提供字符串,而不是JS对象
而不是:
// JS Object, by default will be encoded as formdata (not desired)
'payload' : payload
使用:
希望这有助于确保您也在正在使用的脚本编辑器中打开或启用Advance Google Services中的分析API。资源->推进谷歌服务->打开分析API。另一件我认为可以帮助你的事情是阅读这篇文章。它在第一时间就被启用了。
// Convert JS Object to JSON string
'payload' : JSON.stringify(payload)