1

Я пытаюсь вставить продукт в Google Shopping API, используя следующий код Node.js, но я получаю сообщение об ошибке:Google Shopping API node.js вставные продукт возвращается «запрос INSERT должен указать продукт» ошибка

{ [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); 
}); 

заранее спасибо за любую помощь!

+0

Как кажется, свойство продукта будет названо в качестве ресурса. Можете ли вы попробовать использовать эту подпись объекта {merchantId: * MERCHANTID *, resource: product}? – Boot750

+0

Отлично! Спасибо @ Boot750! – user2890042

+0

Я обеспечу тент, чтобы, может быть, помогло вам немного больше – Boot750

ответ

2

Функция вставки из продуктов имеет следующую подпись

/** 
* 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 имеет свойство, называемое ресурсом, который является фактическим объектом, который вы хотите отправить службе.

В результате вы должны изменить параметр, который вы передаете функции вставки из {merchantId:MERCHANTID,product:product},... в {merchantId:MERCHANTID,resource:product},...

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