Commit 5174a0e8b6395662b49853f1b84549398d681ff9

Authored by 翁力
2 parents 0cd1ef69 dd0c376c

Merge remote-tracking branch 'origin/master'

0. 公共组件/1.1 SHA1签名.md
... ... @@ -2,18 +2,31 @@
2 2 Title: SHA1签名
3 3 */
4 4  
  5 +
  6 +### 系统参数说明 ###
  7 +
  8 +|名称 |类型 |必选 |描述|
  9 +| :----------- | :------: | :------: | :------: |
  10 +|sp_id |string |Y |入驻服务开发者(SP)的应用唯一标识码,由开放平台统一分配并提供(一个SP可自行创建多个应用号)|
  11 +|timestamp |int |Y |当前Unix时间戳,请保证请求服务器时间正确,有些API接口是有时效性要求的|
  12 +|ver |string |Y |协议版本号,统一取值为1.0|
  13 +|sign |string |Y |验证码,生成规则详见下面的说明,其中sp_key是由开放平台统一分配并提供的SP私钥|
  14 +
  15 +
5 16 ### 签名描述 ###
6 17  
7 18 签名机制
8 19 SHA1 加密
9 20  
10   -1. 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值 对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1,
11   - 注意:值为空的参数不 参与签名;
  21 +1. 对所有传入参数(含系统参数和接口参数)按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值 对的格式。
  22 + (即 key1=value1&key2=value2…)拼接成字符串 string1,
  23 + 注意:值为空的参数不参与签名,所有请求参数值都需要进行URL编码。
12 24 2. 在 string1 最 后 拼 接 上 key=sp_key得 到 stringSignTemp 字 符 串 , 并 对 stringSignTemp 进行 sha1 运算,再将得到的字符串所有字符转换为大写,
13 25 得到 sign 值 signValue。
14 26 3. 对传入参数中所有键值对的 value 进行 urlencode 转码后重新拼接成字符串 string2。
15 27 4. 将 sign=signValue拼接到string2后面得到最终的 参数 字符串。
16 28  
  29 +
17 30 #### Java代码示例
18 31  
19 32 ```java
... ... @@ -23,7 +36,7 @@ SHA1 加密
23 36 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
24 37 Map<String, String> map = new HashMap<String,String>();
25 38  
26   - map.put("sp_id","iqhpk8pl19"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
  39 + map.put("sp_id","xxxxxxxxxx"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
27 40 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
28 41 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
29 42  
... ... @@ -36,7 +49,7 @@ SHA1 加密
36 49 String sp_key = "xxxxxxxxxxx"; //开发者帐号对应的key. 请开发者谨慎保管此值。
37 50 Map<String, String> map = new HashMap<String,String>();
38 51  
39   - map.put("sp_id","iqhpk8pl19"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
  52 + map.put("sp_id","xxxxxxxxxx"); //开发者帐号对应的10位ID ,所有接口参数都必须有此参数。
40 53 map.put("param1_keyname", "Parm1_vaule"); //接口需要的参数1
41 54 map.put("param2_keyname", "Parm2_vaule"); //接口需要的参数2 。。。 等等
42 55  
... ...
1. 点播云/内容输出接口.md
1   -/*
2   - *
3   - */
4 1 \ No newline at end of file
  2 +/*
  3 +Title: 1.1 获取点播信息接口
  4 +*/
  5 +
  6 +### 接口描述 ###
  7 +
  8 +
  9 +### 接口地址 ###
  10 +http://api.cnlive.com/open/api/dianbo/getVodInfo
  11 +
  12 +### 接口协议 ###
  13 +HTTP GET
  14 +
  15 +### 接口请求参数 ###
  16 +- vId:节目唯一标识
  17 +- sp_id:应用ID
  18 +- timestamp:时间戳,精确到秒
  19 +
  20 +### 返回值 ###
  21 +返回JSON格式的节目元数据信息,json示例如下:
  22 +
  23 +``` json
  24 +{
  25 + "message":"请求成功",
  26 + "data":{
  27 + "MAM_VideoUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/800/419c46d67fb34b46adbd8b7de450a0f2_137519_800.m3u8",
  28 + "MAM_VideoEditor":"许真真",
  29 + "weight":"80",
  30 + "MAM_VideoUHUrl":"",
  31 + "pageUrl":"http://www.cnlive.com/fengcaidasai/v_gy2tmmrxgy.html",
  32 + "MAM_VideoLUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/400/419c46d67fb34b46adbd8b7de450a0f2_137519_400.m3u8",
  33 + "vipFlag":"0",
  34 + "CMSChannelName":"华语风采大赛",
  35 + "type":"program",
  36 + "packagePomID":"3_fengcaidasai/dianfengduijue/",
  37 + "MAM_BigPostUrl":"http://y3.cnliveimg.com:8080/image/itv/2016/0725/419c46d67fb34b46adbd8b7de450a0f2_137519_101.jpg",
  38 + "cmsChannelID":"fengcaidasai/",
  39 + "MAM_ProducerID":"先锋派",
  40 + "activityId":"",
  41 + "title":"刘子赫孙悟空大闹天宫",
  42 + "docSubTitle":"刘子赫孙悟空大闹天宫",
  43 + "MAM_NodeID":"016-020-003",
  44 + "MAM_TVColumMarkID":"",
  45 + "playAuto":"xiangguanshipin",
  46 + "docID":"656276",
  47 + "onePomID":"3_419c46d67fb34b46adbd8b7de450a0f2",
  48 + "MAM_SmallPosterUrl":"http://y3.cnliveimg.com:8080/image/itv/2016/0725/419c46d67fb34b46adbd8b7de450a0f2_137519_100.jpg",
  49 + "CMCCNodeID":"",
  50 + "MAM_PrgType":"1",
  51 + "publishDate":"2016-07-25 16:47:32",
  52 + "mediaId":"419c46d67fb34b46adbd8b7de450a0f2",
  53 + "MAM_Duration":"293000",
  54 + "MAM_CPNAME":"魅力快线3",
  55 + "MAM_NodeName":"大型专题/华语风采大赛/巅峰对决",
  56 + "vip_product_id":"",
  57 + "status":"1",
  58 + "WEB_Copyright":1,
  59 + "MAM_PosterUrl":"http://y3.cnliveimg.com:8080/image/itv/2016/0725/419c46d67fb34b46adbd8b7de450a0f2_137519_100.jpg",
  60 + "cmsColumnID":"fengcaidasai/dianfengduijue/",
  61 + "MAM_CreatDate":"2016-07-25 16:22:45",
  62 + "APP_Copyright":1,
  63 + "docBodyContent":"",
  64 + "MAM_VideoFlashUHUrl":"",
  65 + "MAM_VideoFlashHUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/1500/419c46d67fb34b46adbd8b7de450a0f2_137519_1500.mp4",
  66 + "MAM_VideoHUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/1500/419c46d67fb34b46adbd8b7de450a0f2_137519_1500.m3u8",
  67 + "CMSColumnName":"巅峰对决",
  68 + "CMCCID":"",
  69 + "freePlayLength":"60",
  70 + "MAM_VideoFlashUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/800/419c46d67fb34b46adbd8b7de450a0f2_137519_800.mp4",
  71 + "docDescription":"刘子赫精彩演绎孙悟空大闹天宫。",
  72 + "MAM_TVDate":"",
  73 + "modules":[
  74 + {
  75 + "id":"xiangguanshipin",
  76 + "title":"相关推荐"
  77 + }
  78 + ],
  79 + "colName":"",
  80 + "MAM_VideoFlashLUrl":"http://wideo03.cnlive.com/video/data1/2016/0725/137519/400/419c46d67fb34b46adbd8b7de450a0f2_137519_400.mp4"
  81 + },
  82 + "errorCode":"0"
  83 +}
  84 +```
  85 +
  86 +JSON属性说明: 四路播放地址至少一个有效
  87 +
  88 +<table style="font-size:14px" >
  89 + <tr>
  90 + <td>字段名称</td>
  91 + <td>描述</td>
  92 + <td>备注</td>
  93 + </tr>
  94 + <tr>
  95 + <td>errorCode</td>
  96 + <td>返回码</td>
  97 + <td>0:成功</td>
  98 + </tr>
  99 + <tr>
  100 + <td>message</td>
  101 + <td>返回信息</td>
  102 + <td></td>
  103 + </tr>
  104 + <tr>
  105 + <td>MAM_VideoUrl</td>
  106 + <td>播放地址</td>
  107 + <td></td>
  108 + </tr>
  109 + <tr>
  110 + <td>MAM_PosterUrl</td>
  111 + <td>图片地址</td>
  112 + <td></td>
  113 + </tr>
  114 + <tr>
  115 + <td>status</td>
  116 + <td>状态</td>
  117 + <td>1:已发布;2:下线</td>
  118 + </tr>
  119 + <tr>
  120 + <td>cmsColumnID</td>
  121 + <td>栏目ID</td>
  122 + <td></td>
  123 + </tr>
  124 + <tr>
  125 + <td>freePlayLength</td>
  126 + <td>免费播放时长</td>
  127 + <td></td>
  128 + </tr>
  129 +</table>
  130 +
  131 +
  132 +参数需进行加密,示例:
  133 +
  134 +详细签名 http://bj.gitlab.cnlive.com/boss-team/OPEN_API/blob/master/0.%20%E5%85%AC%E5%85%B1%E7%BB%84%E4%BB%B6/1.1%20SHA1%E7%AD%BE%E5%90%8D.md
  135 +
  136 +``` java
  137 +public String getPlayVideo(ModelMap model,HttpServletRequest request) {
  138 + String result = "";
  139 + Map params = new HashMap<>();
  140 + params.put("sp_id", "iqhpk8pl19");
  141 + params.put("vId", "419c46d67fb34b46adbd8b7de450a0f2");
  142 + params.put("timestamp", System.currentTimeMillis()/1000+"");
  143 + String url = OpenUtil.buildURL("http://api.cnlive.com/open/api/dianbo/getVodInfo", params, "672db30805f848f59ec3728f8347a4a0");
  144 + HttpURLConnection connection;
  145 + try {
  146 + URL requestUrl = new URL(url);
  147 + connection = (HttpURLConnection)requestUrl.openConnection();
  148 + connection.setRequestMethod("GET");
  149 + connection.setDoInput(true);
  150 + connection.setDoOutput(true);
  151 + connection.connect();//连接
  152 +
  153 + //获得返回值
  154 + if(connection.getResponseCode() == HttpURLConnection.HTTP_OK){
  155 + InputStream in = connection.getInputStream();
  156 + String currentLine = "";
  157 + if(in != null){
  158 + BufferedReader br = new BufferedReader(new InputStreamReader(in,"utf-8"));
  159 + while((currentLine = br.readLine()) != null){
  160 + result += currentLine;
  161 + }
  162 + br.close();
  163 + }
  164 + }
  165 + }catch (Exception e) {
  166 + e.printStackTrace();
  167 + }
  168 +
  169 + if(BaseUtil.notBlank(result)) {
  170 + JSONObject resultJson = JSONObject.parseObject(result);
  171 + model.put("videoInfo", resultJson);
  172 + }
  173 +
  174 + return "play_demo";
  175 + }
  176 +```
5 177 \ No newline at end of file
... ...
8.直播云/1.2 获取直播URL接口.md
... ... @@ -15,7 +15,7 @@
15 15 | cid| string | true | 直播频道ID |
16 16 | uid| string | false | 用户标识(uuid_时间戳),不传为0 |
17 17 | sid| string | false | 用户ID,不传为0 |
18   -| type | string | false | hls(H5/APP使用),mp4(Flash使用),不传则默认为hls
  18 +| type | int | false | 0(HLS流),1(RTMP/MP4流),不传则默认为0
19 19 | retry | int | false | 重试次数,从0开始,不断累加,不传为0 |
20 20 | rate | int | false | 1-流畅,2-标清,3-高清,4-超清,不传为0 |
21 21 | sign | String | false | APP必须使用,H5不用,签名规则见<a href="http://help.open.cnlive.com/common.html">签名详情</a> |
22 22 \ No newline at end of file
... ...