{"api": "enableAutoSnapshotAndUpload","params" : {"enable": 1, //启动/停止自动截图,int,必填。字段取值:0 停止、1 启动,传值不能为空,支持传入 bool 值(true 和 false)。"intervalS": 1,// 截图间隔,int,可选。间隔单位为秒,缺省值 3 秒,最小间隔 1秒。字段传值不能为空,小于 1 则取最小值 1 秒。"streamType": 0, // 流类型,int,可选。字段取值:0 主路、2辅路,传值不能为空。缺省行为:启动截图时若不传入此字段则启动不生效,停止截图时若不传入此字段任务全部停止。"extraInfo": "customized messages" // 截图上传附加信息,string,可选。此信息会通过服务端回调通知给您的业务后台。}}
字段名 | 值 |
Content-Type | application/json |
Sign | 签名值 |
SdkAppId | sdk application id |
字段名 | 类型 | 含义 |
EventGroupId | Number | 事件组 ID,截图事件(EVENT_GROUP_SCREEN_ SHOT)值为 6 |
EventType | Number | 回调通知的事件类型,视频截图(EVENT_TYPE_VIDEO_SCREENSHOT)值为 601 |
CallbackTs | Number | 事件回调服务器向您的服务器发出回调请求的 Unix 时间戳,单位为毫秒 |
EventInfo | JSON Object | 事件信息 |
字段名 | 类型 | 含义 |
eventId | String | 当次回调的事件 ID |
callbackData | String | 截图上传附加信息,通过客户端的 extraInfo 上报 |
pictureURL | String | 截图的 URL |
code | Number | 任务执⾏状态码,默认为 0 表示任务执⾏成功 |
msg | String | 任务执⾏描述信息 |
roomID | String/Number | 房间号 |
streamType | String | 截图的流类型,主路(BigStream)或辅路 (SubStream) |
userID | String | 截图⽤户名 |
timestamp | Number | 截图 UTC 时间戳,精确到毫秒 |
{"EventGroupId": 6,"EventType": 601,"CallbackTs": 1698410059705,"EventInfo": {"eventID": "ap-guangzhou-1400000000-1698410059243691647-60022-jpg.jpg","callbackData": "test","pictureURL": "https://sotest-1200000000.cos.ap-guangzhou.myqcloud.com/1400000000/ap-guangzhou-1400000000-1698410059243691647-60022-jpg.jpg","code": 0,"msg": "","roomID": "464884","streamType": "BigStream","userID": "dd","timestamp": 1698410059693}}
// 签名 Sign 计算公式中 key 为计算签名 Sign 用的加密秘钥。Sign = base64 (hmacsha256(key, body))
body="{\\n\\t\\"EventGroupId\\":\\t1,\\n\\t\\"EventType\\":\\t103,\\n\\t\\"CallbackTs\\":\\t1615554923704,\\n\\t\\"EventInfo\\":\\t{\\n\\t\\t\\"RoomId\\":\\t12345,\\n\\t\\t\\"EventTs\\":\\t1608441737,\\n\\t\\t\\"UserId\\":\\t\\"test\\",\\n\\t\\t\\"UniqueId\\":\\t1615554922656,\\n\\t\\t\\"Role\\":\\t20,\\n\\t\\t\\"Reason\\":\\t1\\n\\t}\\n}"
import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import java.util.Base64;//# 功能:第三方回调sign校验//# 参数://# key:控制台配置的密钥key//# body:腾讯云回调返回的body体//# sign:腾讯云回调返回的签名值sign//# 返回值://# Status OK 表示校验通过,FAIL 表示校验失败,具体原因参考Info//# Info:成功/失败信息public class checkSign {public static String getResultSign(String key, String body) throwsException {Mac hmacSha256 = Mac.getInstance("HmacSHA256");SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(),"HmacSHA256");hmacSha256.init(secret_key);returnBase64.getEncoder().encodeToString(hmacSha256.doFinal(body.getBytes()));}public static void main(String[] args) throws Exception {String key = "123654";String body = "{\\n" + "\\t\\"EventGroupId\\":\\t2,\\n" +"\\t\\"EventType\\":\\t204,\\n" + "\\t\\"CallbackTs\\":\\t1664209748188,\\n" +"\\t\\"EventInfo\\":\\t{\\n" + "\\t\\t\\"RoomId\\":\\t8489,\\n" +"\\t\\t\\"EventTs\\":\\t1664209748,\\n" + "\\t\\t\\"EventMsTs\\":\\t1664209748180,\\n" +"\\t\\t\\"UserId\\":\\t\\"user_85034614\\",\\n" + "\\t\\t\\"Reason\\":\\t0\\n" + "\\t}\\n" +"}";String Sign = "kkoFeO3Oh2ZHnjtg8tEAQhtXK16/KI05W3BQff8IvGA=";String resultSign = getResultSign(key, body);if (resultSign.equals(Sign)) {System.out.println("{'Status': 'OK', 'Info': '校验通过'}");} else {System.out.println("{'Status': 'FAIL', 'Info': '校验失败''}");}}}
本页内容是否解决了您的问题?