我正在尝试使用Google Apps Script和Google My Business Api来获取有关我们位置的一些见解。
获得评论和东西没什么大不了的。
该代码在OAuth2 Playground中运行良好。
以下是请求:
var myBusinessService = getMyBusinessService();
var payload ={
"locationNames":["accounts/116447162401331885225/locations/10722475831894877870"],
"basicRequest": {
"metricRequests": [{
"metric": "ALL"
}],
"timeRange": {
"startTime": "2017-01-01T00:00:01.045123456Z",
"endTime": "2017-01-31T23:59:59.045123476Z"
}
}
};
var options = {
"headers":{
"Authorization": 'Bearer ' + myBusinessService.getAccessToken()
},
"method": "POST",
"payload": payload,
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch('https://mybusiness.googleapis.com/v4/accounts/116447162401331885225/locations:reportInsights', options);
回应:
{error={code=400, details=[Ljava.lang.Object;@3116fd89, message=Invalid JSON payload received. Unknown name "basicRequest": Cannot bind query parameter. 'basicRequest' is a message type. Parameters can only be bound to primitive types., status=INVALID_ARGUMENT}}
希望有人可以帮助我。
问候
蒂斯
你payload
作为JavaScript对象发送。根据错误消息("消息=收到的 JSON 有效负载无效"(,您需要将其作为 JSON 发送。使用 JSON.stringify()
使payload
成为 JSON 字符串。
var options = {
"headers":{
"Authorization": 'Bearer ' + myBusinessService.getAccessToken()
},
"method": "POST",
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};