UNPKG

@liuliang520500/pdd-sdk

Version:

拼多多开放平台SDK,支持多多进宝API

72 lines (59 loc) 2.48 kB
/** * 拼多多商品推广链接生成API * 接口名称:pdd.ddk.oauth.goods.prom.url.generate */ const BaseApi = require('../core/base-api'); class GoodsPromUrlGenerate extends BaseApi { /** * 构造函数 * @param {Object} config 配置参数 */ constructor(config) { super(config); } /** * 生成商品推广链接 * @param {Object} options 生成参数 * @param {String} options.pid 推广位ID * @param {Array<String>} [options.goodsSignList] 商品ID列表,例如["c9r2omogKbZmu7"] * @param {Boolean} [options.generateShortUrl] 是否生成短链接 * @param {Boolean} [options.multiGroup] 是否多人团,true-生成多人团推广链接 false-生成单人团推广链接(默认false) * @param {Boolean} [options.generateWeApp] 是否生成小程序推广 * @param {String} [options.customParameters] 自定义参数,格式:["uid":"11111","sid":"22222"] * @returns {Promise} Promise对象 */ async generate(options = {}) { // 必要参数检查 if (!options.pid) { throw new Error('推广位ID (pid) 不能为空'); } if (!options.goodsSignList || options.goodsSignList.length === 0) { throw new Error('商品ID列表 (goodsSignList) 不能为空'); } // 由于拼多多API对参数名称有特殊要求,需要手动处理一些参数名称 // 拼多多API使用p_id而不是pid,这里我们手动映射 const apiParams = {}; // 映射pid为p_id apiParams.p_id = options.pid; // 映射goodsSignList为goods_sign_list if (options.goodsSignList) { apiParams.goods_sign_list = JSON.stringify(options.goodsSignList); } // 映射其他驼峰参数为下划线格式 if (options.generateShortUrl !== undefined) { apiParams.generate_short_url = options.generateShortUrl; } if (options.generateWeApp !== undefined) { apiParams.generate_we_app = options.generateWeApp; } if (options.multiGroup !== undefined) { apiParams.multi_group = options.multiGroup; } if (options.customParameters) { apiParams.custom_parameters = options.customParameters; } // 执行请求时不转换参数,因为我们已经手动进行了转换 return this.execute('pdd.ddk.oauth.goods.prom.url.generate', apiParams, false); } } module.exports = GoodsPromUrlGenerate;