我尝试使用以下node.js代码将产品插入Google Shopping API,但我一直收到错误:
{ [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 :(得分:3)
产品的插入功能具有以下签名
/**
* 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},...