Push Channel Product
Interface Description
1、推送频道商品库商品
2、接口支持https协议
Interface URL
http://api.polyv.net/live/v3/channel/product/push-product
Request Method
POST
Interface Constraints
- The interface supports both HTTP and HTTPS. HTTPS is recommended to ensure interface security. Interface calls have frequency limits. See details
Request Parameter Description
| Parameter | Required | Type | Description |
|---|---|---|---|
| appId | true | String | Account appId See details on obtaining keys |
| timestamp | true | Long | Current 13-digit millisecond timestamp, valid within 3 minutes |
| sign | true | String | Signature, a 32-character uppercase MD5 value. The appSecret key used to generate the signature is critical for communication data security. It must never be saved or used directly on the client side. All APIs must be called through your own server to relay requests to the POLYV server for response data. See signature generation rules |
| channelId | true | String | Channel ID |
| productId | true | Integer | Product ID |
| pushCardType | false | String | Product push card type [Optional values: smallCard, bigCard, bottomCard] |
When the channel product push rule is set to "Select on Push" (
chooseCard), the push is performed according to the type specified bypushCardType. If this parameter is not passed, the default push is a small card. When the channel has a fixed card type set, the push follows the channel configuration.
Example
http://api.polyv.net/live/v3/channel/product/push-product
Form parameters:
productId=29426&appId=frlr1zazn3&sign=25B1C55EA9B53C8BBD7D835A9CAF8B3B&channelId=1965681×tamp=1621843461972
Response Parameter Description
| Parameter | Type | Description |
|---|---|---|
| code | Integer | Response status code, 200 for success, non-200 for failure See global error description |
| status | String | Response status text |
| message | String | Response description message, assists in describing error reasons when code is 400 or 500 |
| data | String | Returns null on success, returns empty string on failure |
Java Request Example
For quick integration of basic code, download the relevant dependency source code. Click to download source code. After downloading, add it to your own source project. The test cases include HttpUtil.java and LiveSignUtil.java, both contained in the download file.
It is strongly recommended to use the Live Java SDK for API integration. The Live Java SDK provides unified encapsulation and optimization for API call logic, exception handling, data signing, and HTTP request thread pools.
private static final Logger log = LoggerFactory.getLogger(ChannelOperateTest.class);
/**
* 推送商品库商品
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void testPushChannelProduct() throws IOException, NoSuchAlgorithmException {
//公共参数,填写自己的实际
String appId = super.appId;
String appSecret = super.appSecret;
String userId = super.userId;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url="http://api.polyv.net/live/v3/channel/product/push-product";
String channelId="1965681";
String productId="29426";
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("channelId", channelId);
requestMap.put("productId", productId);
// 频道商品推送规则为“推送时选择”时,指定推送底部卡片
requestMap.put("pushCardType", "bottomCard");
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
String response = HttpUtil.postFormBody(url,requestMap);
log.info("测试推送商品库商品,返回值:{}", response);
//do somethings
}
Response Example
For system global error descriptions, see Global Error Description
Success Example
{
"code":200,
"status":"success",
"message":"",
"data":null
}
Error Example
{
"code": 400,
"status": "error",
"message": "invalid signature.",
"data": ""
}
Frequently Asked Questions
Q: How to push a bottom card via the API?
A: Set the channel product push rule to "Select on Push" (chooseCard), and pass pushCardType=bottomCard when calling this interface. When generating the signature, pushCardType must be included as a signature parameter. See the Java request example above.
Q: Why does passing pushCardType=bottomCard still result in a different card type being pushed?
A: When the channel has a fixed card type set, the interface follows the channel configuration. Only when the channel product push rule is set to "Select on Push" (chooseCard) will the passed pushCardType be used.
