Live/thirdapi
(以“=直播服务第三方接入= ==第三方直播源接入流程== ==第三方回调接口== URL : http://***.***.com/***?url=*** 说明:由第三方提供该回...”为内容创建页面) |
(→第三方直播源接入流程) |
||
(未显示1个用户的20个中间版本) | |||
第1行: | 第1行: | ||
=直播服务第三方接入= | =直播服务第三方接入= | ||
==第三方直播源接入流程== | ==第三方直播源接入流程== | ||
+ | 这种接入方式适用于已有直播服务的开发者。 | ||
+ | 开发者将包含其直播间页面URL的博文,通过微博平台接口分享至微博,微博会识别开发者的URL域名,然后回调其提供的直播信息接口,获取该URL的直播信息,最后带有该直播URL的微博会以直播的形式展现给用户。 | ||
− | + | 开发者接入步骤如下: | |
− | + | ||
− | + | 第一步:申请成为微博平台开发者。[http://open.weibo.com/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97 详见新手指南] | |
− | + | 第二步:提供直播页面的URL域名。 | |
+ | |||
+ | 第三步:提供直播信息回调接口。 详见下文 | ||
+ | |||
+ | 第四步:直播信息若有变动(如直播开始和结束),需要主动调用微博接口更新该直播信息。 详见下文 | ||
+ | |||
+ | 第五步:开发联调,测试上线。 | ||
+ | |||
+ | ==第三方提供回调接口== | ||
+ | URL : http://***.com/***?url=*** | ||
+ | |||
+ | 说明:由第三方提供该回调接口,返回完整的JSON格式的直播对象信息,参数url为透传第三方分享到微博的链接地址url | ||
+ | |||
+ | <b>参数说明:</b> | ||
+ | <center><table class="wiki_table" border="0" cellspacing="0" cellpadding="0"> | ||
+ | |||
+ | <tr> | ||
+ | <th class="wiki_table_thfirst" scope="col" width="25%">直播对象一级字段</th> | ||
+ | <th scope="col" width="20%">二级字段</th> | ||
+ | <th scope="col" width="55%">字段说明</th> | ||
+ | </tr> | ||
+ | |||
+ | |||
+ | <tr> | ||
+ | <td>summary</td> | ||
+ | <td>-</td> | ||
+ | <td>微博文本内容,分享到微博的文本内容,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan='8'>urls</td> | ||
+ | <td>live_flv_hd</td> | ||
+ | <td>直播高清地址-flv格式,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>live_flv_ld</td> | ||
+ | <td>直播标清地址-flv格式,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>rtmp_hd</td> | ||
+ | <td>直播高清地址-rtmp格式,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>rtmp_ld</td> | ||
+ | <td>直播标清地址-rtmp格式,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>live_hd</td> | ||
+ | <td>直播高清地址-hls格式,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>live_ld</td> | ||
+ | <td>直播标清地址-hls格式,如没有默认空,以上格式必须提供一种,如果没有分高标清,赋值成相同的地址</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>replay_hd</td> | ||
+ | <td>直播回放高清地址,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>replay_ld</td> | ||
+ | <td>直播回放标清地址,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan='3'>image</td> | ||
+ | <td>width</td> | ||
+ | <td>封面图宽</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>height</td> | ||
+ | <td>封面图高</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>url</td> | ||
+ | <td>直播封面图地址</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan='3'>author</td> | ||
+ | <td>id</td> | ||
+ | <td>直播主播对应的微博用户id(uid),如果第三方没有对应的微博UID,第三方回调接口请直接返回错误提示</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>object_type</td> | ||
+ | <td>直播主播类型,默认person</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>display_name</td> | ||
+ | <td>直播主播微博昵称,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td rowspan='3'>live</td> | ||
+ | <td>width</td> | ||
+ | <td>直播流宽,直播流原始分辨率,根据这个宽高比信息自适应直播播放器显示横屏竖屏</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>height</td> | ||
+ | <td>直播流高</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>bitrate</td> | ||
+ | <td>直播流码率</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>id</td> | ||
+ | <td>-</td> | ||
+ | <td>直播对象ID,一般默认规则(domainid:md5(url)),冒号之前为微博平台分配的域名ID,冒号之后保证唯一值</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>object_type</td> | ||
+ | <td>-</td> | ||
+ | <td>直播对象类型,填写live</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>object_type_detail</td> | ||
+ | <td>-</td> | ||
+ | <td>直播对象详情,默认微博直播“weibolive”,第三方协商命名</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>mid</td> | ||
+ | <td>-</td> | ||
+ | <td>直播主播分享的原创微博mid,目前第三方接入微博sdk的方式分享到微博无法获取到mid,只有通过服务层调用平台分享微博接口才能获取到mid,如没有默认空,影响互动打通等直播功能</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>display_name</td> | ||
+ | <td>-</td> | ||
+ | <td>直播短链标题,默认“微博直播”,第三方协商命名</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>title</td> | ||
+ | <td>-</td> | ||
+ | <td>直播标题</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>status</td> | ||
+ | <td>-</td> | ||
+ | <td>直播实时状态(0 未开始,1 直播中,2 直播删除, 3 直播结束)</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>stime</td> | ||
+ | <td>-</td> | ||
+ | <td>直播开始时间</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>etime</td> | ||
+ | <td>-</td> | ||
+ | <td>直播结束时间</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>updated_at</td> | ||
+ | <td>-</td> | ||
+ | <td>直播创建时间</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>duration</td> | ||
+ | <td>-</td> | ||
+ | <td>直播持续时长</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>url</td> | ||
+ | <td>-</td> | ||
+ | <td>第三方直播播放落地页地址</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>target_url</td> | ||
+ | <td>-</td> | ||
+ | <td>第三方直播播放落地页地址,同url</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>share_text</td> | ||
+ | <td>-</td> | ||
+ | <td>直播分享文案,如没有默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>embed_code</td> | ||
+ | <td>-</td> | ||
+ | <td>直播flash播放地址,如没有默认空,影响PC端展示解析</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>scheme_app_ios</td> | ||
+ | <td>-</td> | ||
+ | <td>呼起第三方直播ios app地址,默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>scheme_app_android</td> | ||
+ | <td>-</td> | ||
+ | <td>呼起第三方直播android app地址,默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>app_ios_url</td> | ||
+ | <td>-</td> | ||
+ | <td>呼起第三方直播ios app下载地址,默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>app_android_url</td> | ||
+ | <td>-</td> | ||
+ | <td>呼起第三方直播android app下载地址,默认空</td> | ||
+ | </tr> | ||
+ | |||
+ | </table> | ||
+ | </center> | ||
示例: | 示例: | ||
− | <pre> | + | |
+ | |||
+ | <pre class="brush:js"> | ||
{ | { | ||
− | summary: "【暴雨袭击江西南昌 央视记者正在直播】江西省南昌市昨晚迎来强降雨,27个站点降雨量超过100毫米,气象部门不断升级暴雨预警。今天,南昌市区多个路段出现积水,记者所在的立交桥积水深度超过1.5米,有车辆陷入积水中。央视新闻记者正在现场直播。(央视记者王舒畅)", | + | "summary": "【暴雨袭击江西南昌 央视记者正在直播】江西省南昌市昨晚迎来强降雨,27个站点降雨量超过100毫米,气象部门不断升级暴雨预警。今天,南昌市区多个路段出现积水,记者所在的立交桥积水深度超过1.5米,有车辆陷入积水中。央视新闻记者正在现场直播。(央视记者王舒畅)", |
− | stream: { | + | "stream": { |
− | + | "hd_url": "http://***", | |
− | + | "format": "m3u8", | |
− | + | "url": "http://***" | |
− | }, | + | }, |
− | app_android_url: "", | + | "app_android_url": "", |
− | stime: "2016-06-02 11:24:46", | + | "stime": "2016-06-02 11:24:46", |
− | id: "1042097:5d9361da897dfe7c7d1f343b74bee53d", | + | "id": "1042097:5d9361da897dfe7c7d1f343b74bee53d", |
− | object_type: "live", | + | "object_type": "live", |
− | author: { | + | "author": { |
− | + | "id": "2656274875", | |
− | + | "object_type": "person", | |
− | + | "display_name": "央视新闻" | |
− | }, | + | }, |
− | title: "暴雨袭击南昌 央视记者正在直播", | + | "title": "暴雨袭击南昌 央视记者正在直播", |
− | scheme_app_android: "", | + | "scheme_app_android": "", |
− | app_ios_url: "", | + | "app_ios_url": "", |
− | scheme_app_ios: "", | + | "scheme_app_ios": "", |
− | disable_replay: 0, | + | "disable_replay": 0, |
− | share_text: "@央视新闻 正在直播中,场面异常火爆,小伙伴们速来围观... http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", | + | "share_text": "@央视新闻 正在直播中,场面异常火爆,小伙伴们速来围观... http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", |
− | live: { | + | "live": { |
− | + | "height": "450", | |
− | + | "width": "800", | |
− | + | "bitrate": "500" | |
− | }, | + | }, |
− | status: 3, | + | "status": 3, |
− | urls: { | + | "urls": { |
− | + | "live_ld": "http://***", | |
− | + | "replay_ld": "http://***", | |
− | + | "rtmp_ld": "rtmp://***", | |
− | + | "live_flv_ld": "http://***.flv", | |
− | + | "live_hd": "http://***", | |
− | + | "replay_hd": "http://***", | |
− | + | "rtmp_hd": "rtmp://***", | |
− | + | "live_flv_hd": "http://***.flv" | |
− | + | }, | |
− | + | "object_type_detail": "weibolive", | |
− | + | "image": { | |
− | + | "height": "450", | |
− | }, | + | "width": "800", |
− | object_type_detail: "weibolive", | + | "url": "http://ww3.sinaimg.cn/large/941f7a2fjw1f4gptlnkh0j20fk08rgo7.jpg" |
− | image: { | + | }, |
− | + | "url": "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", | |
− | + | "background_url": "", | |
− | + | "display_name": "微博直播", | |
− | }, | + | "duration": 1218.599, |
− | url: "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", | + | "updated_at": "2016-06-02", |
− | background_url: "", | + | "etime": "2016-06-02 12:01:01", |
− | display_name: "微博直播", | + | "embed_code": "http://****/v.swf", |
− | duration: 1218.599, | + | "mid": "3981885077804051", |
− | updated_at: "2016-06-02", | + | "target_url": "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d" |
− | etime: "2016-06-02 12:01:01", | + | |
− | embed_code: "http://****/v.swf", | + | |
− | mid: "3981885077804051", | + | |
− | target_url: "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d" | + | |
} | } | ||
</pre> | </pre> | ||
− | == | + | ==第三方主动更新直播信息接口== |
URL : http://live.weibo.com/proxy/updatestatus [POST] | URL : http://live.weibo.com/proxy/updatestatus [POST] | ||
− | + | 说明:第三方直播对象的任何信息发生变更,需要调用该接口同步微博,比如直播状态变更、播放地址更新、回放地址生成、直播时长更新、封面图更新等等 | |
参数: | 参数: | ||
第102行: | 第334行: | ||
{{rdes_args|code|string|错误代码,0 请求正常,其他错误详见下文的错误代码说明}} | {{rdes_args|code|string|错误代码,0 请求正常,其他错误详见下文的错误代码说明}} | ||
{{rdes_args|msg|string|错误信息}} | {{rdes_args|msg|string|错误信息}} | ||
− | {{rdes_args|data|string| | + | {{rdes_args|data|string|如果请求正常,返回空数组}} |
|} | |} | ||
示例: | 示例: | ||
− | <pre> | + | <pre class="brush:js"> |
{ | { | ||
− | + | "code": 0, | |
+ | "msg": "OK", | ||
+ | "data": [ ] | ||
} | } | ||
</pre> | </pre> | ||
==接口签名校验== | ==接口签名校验== | ||
− | + | 每个接入的第三方会分配一个秘钥,根据微博提供的加密算法进行接口校验,加密算法微博平台单独文档提供 | |
==错误代码== | ==错误代码== | ||
第125行: | 第359行: | ||
!width="40%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|错误msg | !width="40%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|错误msg | ||
!width="45%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|描述 | !width="45%" style="text-align:left;padding-left:5px;font-weight:bolder;border:1px solid #cccccc"|描述 | ||
− | {{rdes_args| | + | {{rdes_args|100000|sign_error|sign值错误}} |
− | {{rdes_args| | + | {{rdes_args|100001|id_error|直播id不存在}} |
− | {{rdes_args| | + | {{rdes_args|100002|field_empty|字段为空}} |
− | {{rdes_args| | + | {{rdes_args|100004|object_empty|直播id内容为空}} |
+ | {{rdes_args|100005|uid_error|uid错误}} | ||
+ | {{rdes_args|100006|force_update_error|直播信息更新错误}} | ||
+ | {{rdes_args|100007|wesync_error|消息下发错误}} | ||
+ | {{rdes_args|100016|liveim_error|互动下发错误}} | ||
|} | |} |
2016年9月7日 (三) 20:21的最后版本
目录 |
直播服务第三方接入
第三方直播源接入流程
这种接入方式适用于已有直播服务的开发者。 开发者将包含其直播间页面URL的博文,通过微博平台接口分享至微博,微博会识别开发者的URL域名,然后回调其提供的直播信息接口,获取该URL的直播信息,最后带有该直播URL的微博会以直播的形式展现给用户。
开发者接入步骤如下:
第一步:申请成为微博平台开发者。详见新手指南
第二步:提供直播页面的URL域名。
第三步:提供直播信息回调接口。 详见下文
第四步:直播信息若有变动(如直播开始和结束),需要主动调用微博接口更新该直播信息。 详见下文
第五步:开发联调,测试上线。
第三方提供回调接口
URL : http://***.com/***?url=***
说明:由第三方提供该回调接口,返回完整的JSON格式的直播对象信息,参数url为透传第三方分享到微博的链接地址url
参数说明:
直播对象一级字段 | 二级字段 | 字段说明 |
---|---|---|
summary | - | 微博文本内容,分享到微博的文本内容,如没有默认空 |
urls | live_flv_hd | 直播高清地址-flv格式,如没有默认空 |
live_flv_ld | 直播标清地址-flv格式,如没有默认空 | |
rtmp_hd | 直播高清地址-rtmp格式,如没有默认空 | |
rtmp_ld | 直播标清地址-rtmp格式,如没有默认空 | |
live_hd | 直播高清地址-hls格式,如没有默认空 | |
live_ld | 直播标清地址-hls格式,如没有默认空,以上格式必须提供一种,如果没有分高标清,赋值成相同的地址 | |
replay_hd | 直播回放高清地址,如没有默认空 | |
replay_ld | 直播回放标清地址,如没有默认空 | |
image | width | 封面图宽 |
height | 封面图高 | |
url | 直播封面图地址 | |
author | id | 直播主播对应的微博用户id(uid),如果第三方没有对应的微博UID,第三方回调接口请直接返回错误提示 |
object_type | 直播主播类型,默认person | |
display_name | 直播主播微博昵称,如没有默认空 | |
live | width | 直播流宽,直播流原始分辨率,根据这个宽高比信息自适应直播播放器显示横屏竖屏 |
height | 直播流高 | |
bitrate | 直播流码率 | |
id | - | 直播对象ID,一般默认规则(domainid:md5(url)),冒号之前为微博平台分配的域名ID,冒号之后保证唯一值 |
object_type | - | 直播对象类型,填写live |
object_type_detail | - | 直播对象详情,默认微博直播“weibolive”,第三方协商命名 |
mid | - | 直播主播分享的原创微博mid,目前第三方接入微博sdk的方式分享到微博无法获取到mid,只有通过服务层调用平台分享微博接口才能获取到mid,如没有默认空,影响互动打通等直播功能 |
display_name | - | 直播短链标题,默认“微博直播”,第三方协商命名 |
title | - | 直播标题 |
status | - | 直播实时状态(0 未开始,1 直播中,2 直播删除, 3 直播结束) |
stime | - | 直播开始时间 |
etime | - | 直播结束时间 |
updated_at | - | 直播创建时间 |
duration | - | 直播持续时长 |
url | - | 第三方直播播放落地页地址 |
target_url | - | 第三方直播播放落地页地址,同url |
share_text | - | 直播分享文案,如没有默认空 |
embed_code | - | 直播flash播放地址,如没有默认空,影响PC端展示解析 |
scheme_app_ios | - | 呼起第三方直播ios app地址,默认空 |
scheme_app_android | - | 呼起第三方直播android app地址,默认空 |
app_ios_url | - | 呼起第三方直播ios app下载地址,默认空 |
app_android_url | - | 呼起第三方直播android app下载地址,默认空 |
示例:
{ "summary": "【暴雨袭击江西南昌 央视记者正在直播】江西省南昌市昨晚迎来强降雨,27个站点降雨量超过100毫米,气象部门不断升级暴雨预警。今天,南昌市区多个路段出现积水,记者所在的立交桥积水深度超过1.5米,有车辆陷入积水中。央视新闻记者正在现场直播。(央视记者王舒畅)", "stream": { "hd_url": "http://***", "format": "m3u8", "url": "http://***" }, "app_android_url": "", "stime": "2016-06-02 11:24:46", "id": "1042097:5d9361da897dfe7c7d1f343b74bee53d", "object_type": "live", "author": { "id": "2656274875", "object_type": "person", "display_name": "央视新闻" }, "title": "暴雨袭击南昌 央视记者正在直播", "scheme_app_android": "", "app_ios_url": "", "scheme_app_ios": "", "disable_replay": 0, "share_text": "@央视新闻 正在直播中,场面异常火爆,小伙伴们速来围观... http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", "live": { "height": "450", "width": "800", "bitrate": "500" }, "status": 3, "urls": { "live_ld": "http://***", "replay_ld": "http://***", "rtmp_ld": "rtmp://***", "live_flv_ld": "http://***.flv", "live_hd": "http://***", "replay_hd": "http://***", "rtmp_hd": "rtmp://***", "live_flv_hd": "http://***.flv" }, "object_type_detail": "weibolive", "image": { "height": "450", "width": "800", "url": "http://ww3.sinaimg.cn/large/941f7a2fjw1f4gptlnkh0j20fk08rgo7.jpg" }, "url": "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d", "background_url": "", "display_name": "微博直播", "duration": 1218.599, "updated_at": "2016-06-02", "etime": "2016-06-02 12:01:01", "embed_code": "http://****/v.swf", "mid": "3981885077804051", "target_url": "http://live.weibo.com/show?id=1042097:5d9361da897dfe7c7d1f343b74bee53d" }
第三方主动更新直播信息接口
URL : http://live.weibo.com/proxy/updatestatus [POST]
说明:第三方直播对象的任何信息发生变更,需要调用该接口同步微博,比如直播状态变更、播放地址更新、回放地址生成、直播时长更新、封面图更新等等
参数:
参数字段 | 字段必选 | 字段类型 | 字段说明 |
---|---|---|---|
source | true | string | 直播来源,即appkey |
uid | true | string | 直播主播的微博uid |
liveid | true | string | 直播ID,即直播对象中的id |
status | true | string | 直播状态,0:未直播 1:直播中 2:删除或举报 3:直播结束 4:直播延迟 |
url | true | string | 第三方直播落地页,即直播对象中的url |
sign | true | string | 签名校验,具体的加密算法见下文 |
useragent | false | string | 用户ua信息 |
返回:
参数字段 | 字段必选 | 字段说明 |
---|---|---|
code | string | 错误代码,0 请求正常,其他错误详见下文的错误代码说明 |
msg | string | 错误信息 |
data | string | 如果请求正常,返回空数组 |
示例:
{ "code": 0, "msg": "OK", "data": [ ] }
接口签名校验
每个接入的第三方会分配一个秘钥,根据微博提供的加密算法进行接口校验,加密算法微博平台单独文档提供
错误代码
错误码
错误码 | 错误msg | 描述 |
---|---|---|
100000 | sign_error | sign值错误 |
100001 | id_error | 直播id不存在 |
100002 | field_empty | 字段为空 |
100004 | object_empty | 直播id内容为空 |
100005 | uid_error | uid错误 |
100006 | force_update_error | 直播信息更新错误 |
100007 | wesync_error | 消息下发错误 |
100016 | liveim_error | 互动下发错误 |
文档更新时间: 2016-09-07