Вставка продукта Google Shopping API node.js возвращает ошибку "В запросе INSERT должен быть указан продукт"
Я пытаюсь вставить продукт в Google Shopping API, используя следующий код node.js, но получаю сообщение об ошибке:
{ [Error: [product] INSERT request must specify product]
code: 400,
errors:
[ { domain: 'global',
reason: 'required',
message: '[product] INSERT request must specify product' } ] }
Вот мой код JavaScript (я использую клиент узла здесь: https://github.com/google/google-api-nodejs-client/):
var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2(*OAUTHDETAILS*);
oauth2Client.setCredentials({
access_token: '*ACCESSTOKEN*',
//refresh_token: 'REFRESH TOKEN HERE'
});
var content = google.content({ version: 'v2', auth: oauth2Client });
var product = {
"channel": "online",
"contentLanguage": "en",
"offerId": *PRODUCTID*,
"targetCountry": "us",
"identifierExists": false,
"condition": "new",
"link": "*PRODUCTLINK*",
"price": {
"currency": "usd",
"value": *VALUE*
},
"title": *PRODUCTTITLE*,
"availability": "in stock",
"description": *DESCRIPTION*,
"googleProductCategory": *PRODUCTCATEGORY*,
"ageGroup": "adult",
"color": *PRODUCTCOLOR*,
"gender": "unisex",
"sizes": [
"XS",
'S',
'M',
'L',
'XL'
],
"imageLink": *IMGURL*
};
content.products.insert({merchantId:*MERCHANTID*,product:product},function(err, resp) {
// handle err and response
console.log(err);
console.log(resp);
});
Заранее благодарю за любую помощь!
1 ответ
Решение
Функция вставки продуктов имеет следующую подпись
/**
* content.products.insert
*
* @desc Uploads a product to your Merchant Center account.
*
* @alias content.products.insert
* @memberOf! content(v2)
*
* @param {object} params - Parameters for request
* @param {boolean=} params.dryRun - Flag to run the request in dry-run mode.
* @param {string} params.merchantId - The ID of the managing account.
* @param {object} params.resource - Request body data
* @param {callback} callback - The callback that handles the response.
* @return {object} Request object
*/
Эту подпись можно найти в файле: https://github.com/google/google-api-nodejs-client/blob/master/apis/content/v2.js.
Как вы можете видеть, у объекта param есть свойство под названием resource, которое является фактическим объектом, который вы хотите отправить в сервис.
В результате вам нужно изменить параметр, который вы передаете в функцию вставки из {merchantId:MERCHANTID,product:product},...
в {merchantId:MERCHANTID,resource:product},...