Я пишу скрипт приложений Google в редакторе кода электронной таблицы Google. Я хочу получить некоторые данные из Google Analytics, которые должны использовать GA API v4. Я знаю, что в скрипте приложений Google есть встроенная поддержка Analytics API, но только версия v3.
Поэтому я следую этому руководству Скрипт Google Apps - внешний API и использую эта библиотека googlesamples / apps-script-oauth2 для выполнения oauth2.
Я уверен, что включил API Analytics V4 в консоли API и получил правильный идентификатор клиента и секрет. После auth2 я написал код для доступа к данным
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."
}
]
}
]
}
}
Что я делаю неправильно? и что означает сообщение об ошибке?
Спасибо!