Google购物APInode.js产品插入returns"INSERT request must specify product"错误
Google Shopping API node.js product insert returns "INSERT request must specify product" error
我正在尝试使用以下 node.js 代码将产品插入 Google 购物 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);
});
在此先感谢您的帮助!
产品的插入函数具有以下签名
/**
* 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:<em>MERCHANTID</em>,product:product},...
到 {merchantId:<em>MERCHANTID</em>,resource:product},...
我正在尝试使用以下 node.js 代码将产品插入 Google 购物 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);
});
在此先感谢您的帮助!
产品的插入函数具有以下签名
/**
* 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:<em>MERCHANTID</em>,product:product},...
到 {merchantId:<em>MERCHANTID</em>,resource:product},...