我正在尝试对Search Console API进行POST调用。我在API Explorer中运行了我的示例,但是当我尝试从我的meteor项目进行相同的调用时,我收到错误:
对象{错误:对象}错误:对象代码:400错误:数组[1] 消息:"解析错误"
我的代码:
function fetchSEOForWebsite(website) {
var call = 'webmasters/v3/sites/' + 'mdbootstrap.com' + '/searchAnalytics/query'
var params = {
"searchType": "web",
"dimensions": [
"query",
"date",
"page"
],
"startDate": "2016-02-06",
"endDate": "2016-02-08"
}
GoogleApi.post(call, {
params: params
}, function(error, answer) {
console.log(answer);
});
}
从Chrome控制台我可以看到POST有效负载:
检索类别=幅&安培;尺寸=查询%2Cdate%2Cpage&安培;的startDate = 2016年2月6日&安培;结束日期= 2016年2月8日
同样的查询在API Explorer中运行得非常好:
POST https://www.googleapis.com/webmasters/v3/sites/http%3A%2F%2Fmdbootstrap.com/searchAnalytics/query?key={YOUR_API_KEY}
{
"searchType": "web",
"dimensions": [
"query",
"date",
"page"
],
"startDate": "2016-02-06",
"endDate": "2016-02-08"
}
我做错了什么?
我正在使用Meteor Google Api https://github.com/percolatestudio/meteor-google-api
更新: 我还检查了通过API Explorer发送的paylod,它与众不同:
{" searchType":" web","维度":["查询","日期", "页面"
]," startDate":" 2016-02-06"," endDate":" 2016-02-08" }
所以看起来由于某些原因我的params不作为JSON对象传递来调用...
答案 0 :(得分:1)
来自percolate:google-api package自述
GoogleApi是围绕HTTP的Google OAuth身份验证包装器,所以它 采用相同的论点。例如,传入JSON主体 GoogleApi.post,使用:
GoogleApi.post(' / your / api / path',{data:jsonBody});
所以我会尝试使用data:
代替params: