2016-02-09 3 views
0

Я пытаюсь сделать запрос POST в API Search Console. Я получил мой пример работает под API Explorer, Однако, когда я пытаюсь сделать то же звонок от моего метеорного проекта, я получаю сообщение об ошибке:400 Ошибка Parser с помощью API API Google POST

Object {error: Object} error: Object code: 400 errors: Array[1] message: "Parse Error"

Мой код:

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 полезная нагрузка:

searchType=web&dimensions=query%2Cdate%2Cpage&startDate=2016-02-06&endDate=2016-02-08

тот же запрос отлично работает с 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" 
} 

Что я делаю неправильно?

Я использую Метеор Google Api https://github.com/percolatestudio/meteor-google-api

UPDATE: Я также проверил paylod послал через API Explorer, и это по-другому:

{ "searchType": "web", "dimensions": ["query","date","page"
], "startDate": "2016-02-06", "endDate": "2016-02-08" }

Так он выглядит по какой-то причине не прошли мои PARAMS в качестве объекта JSON для звонков ...

ответ

1

Из перколята: пакет google-api Readme

GoogleApi is a Google OAuth authentication wrapper around HTTP, so it takes the same arguments. For example, to pass a JSON body in GoogleApi.post, use:

GoogleApi.post('/your/api/path', { data: jsonBody });

Поэтому я бы постарался с data: вместо params:

Смежные вопросы