参考此文档接入push全量推送能力,帮助客户侧实现在控制台筛选推送内容,并在指定时间将内容全量推送到客户侧C端用户。
流程图
时序图
POST application/json
参数 | 描述 | 类型 | 说明 |
---|---|---|---|
timestamp | 时间戳 | long | 10位时间戳(单位:秒),为保证安全,与当前时间戳绝对值不要超过3600s |
nonce | 随机数 | String | 请求随机串,随机串长度为6-32位数字和字母的组合,大小写敏感 |
body | 请求体 | json | 请求体body字节流 |
secretKey | 密钥 | String | 当客户在火山引擎内容定制控制台创建正式应用后,进入应用详情页,可以查看App_key,即该签名方法中的secretKey参数。 |
Hmac_SHA256算法
timestamp
,nonce
,body
顺序拼接字符串SignatureStr
:1650990009ffef232sf3{"age":1111111,"name":"alice"}
d5dbe60efb2d7f9d1a4d07e8e77fab5fd678f46f079443a7cbe87a3cad410553
func GenSignature(timestamp, nonce, body, secretKey string) string { // 按照timestamp,nonce,body 顺序拼接签名字符串 signatureStr := timestamp+nonce+body hmacSha256 := hmac.New(sha256.New, []byte(secretKey)) hmacSha256.Write([]byte(signatureStr)) //将sha256转成16进制字符串 signature := fmt.Sprintf("%x", hmacSha256.Sum(nil)) return signature }
参数 | 描述 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
push_id | 推送的唯一标识 | String | 是 | 每个推送都对应一个push_id |
group_id | 内容id | String | 是 | 内容唯一标识 |
article_url | 内容地址 | String | 是 | 内容详情页H5页面地址 |
title | 内容标题 | String | 是 | |
abstract | 内容简介 | String | 是 | 内容的摘要 |
参数 | 描述 | 类型 | 说明 |
---|---|---|---|
ret | 响应状态码 | long | 0:成功 |
msg | 响应结果说明 | String | success:成功; |
火山引擎侧向上述客户侧服务端提供的回调接口发送请求的示例
POST / HTTP/1.1 Host: xxx.xxx.xxx Timestamp: 1651024696 Nonce: 2323233 Signature: 0791cee3dc58c581e93f21f3dad1dee2d3827a29f7c777baaadf11aa440fe4b2 Content-Type: application/json Content-Length: 128 { "push_id": "2212121212", "group_id": "232323232", "article_url": "https://www.bytedance.com/", "title": "测试标题", "abstract": "测试摘要" }
客户侧服务端返回给火山引擎侧的响应数据
{ "ret":0, // 响应状态码 "msg":"success" // 响应结果说明 }
注意