Live/im/api

跳转到: 导航, 搜索
(概述)
(概述)
第3行: 第3行:
  
  
微博与接入微博的第三方合作的一种模式是“服务端同步”,即微博直播互动系统和第三方互动系统之间做消息同步,从而实现消息共享的效果。发送消息接口和拉取消息接口(主动拉取和回调拉取)提供第三方的消息同步到微博的功能。注:直播服务请参考[http://open.weibo.com/wiki/Live/api 文档]
+
微博与接入微博的第三方合作的一种模式是“服务端同步”,即微博直播互动系统和第三方互动系统之间做消息同步,从而实现消息共享的效果。发送消息接口和拉取消息接口(主动拉取和回调拉取)提供第三方的消息同步到微博的功能。注:[http://open.weibo.com/wiki/Live/api 直播服务请参考文档]
  
 
== 互动上行 ==
 
== 互动上行 ==

2016年10月20日 (四) 11:24的版本

目录

概述

微博与接入微博的第三方合作的一种模式是“服务端同步”,即微博直播互动系统和第三方互动系统之间做消息同步,从而实现消息共享的效果。发送消息接口和拉取消息接口(主动拉取和回调拉取)提供第三方的消息同步到微博的功能。注:直播服务请参考文档

互动上行

说明

直播用户上行评论接口


URL

https://api.weibo.com/2/liveim/message/sync.json [POST]


支持格式

JSON


是否需要登录

true 登录授权方式,请参见本WIKI内的 如何登录授权


请求参数

参数字段 字段必选 字段类型 字段说明
access_token true string 采用OAuth授权方式为必填参数,OAuth授权后获得
room_id true string 房间id
ts true long 时间戳(1970-01-01 00:00:00 起毫秒数),要求不得延迟2min以上
msg_type true int 消息类型, 1 - 评论消息 2 - 点赞消息
content true string 消息内容
uid true long 发送者ID
nickname true string 发送者昵称
avatar true string 发送者头像url
sign true string 对sign之外的其他所有参数进行签名的结果 见签名算法
extension false string 消息扩展字段(json object格式,默认为空json object)
offset false long 发消息的时间距离直播开始的偏移,单位ms。如果不传,或者传的是负数,做0处理,表示当前消息回放时不展示。


返回结果

//成功返回

{
    "error_code":0,    // 0表示成功 其他表示失败。需要看错误消息
    "error_msg":""
}


//失败返回

{
    "error_code": 91XX,
    "error_msg": "xxxxxxxxx"
}

互动下行—Pull方式

说明

该接口提供第三方从微博直播互动系统拉取房间消息的功能。 第三方发起该请求之后,只要不断开连接,该接口会源源不断的推回房间中最新的消息。如果连接意外断开,只要重连之前累计消息数量不超过商定的阈值,消息都会从上次断开的地方继续推送。


URL

https://api.weibo.com/2/liveim/message/pull.stream [GET]


支持格式

JSON


是否需要登录

true 登录授权方式,请参见本WIKI内的如何登录授权


请求参数

参数字段 字段必选 字段类型 字段说明
access_token true string 采用OAuth授权方式为必填参数,OAuth授权后获得
room_id true string 房间id

返回结果 返回的消息以JSON的方式推送,推送的数据结构如下,每条消息是一个单独的JSON-OBJECT。

//成功返回

{
    "error_code":0,    // 0表示成功 其他表示失败。需要看错误消息
    "error_msg":"",
}
{
    // 消息体。见附件[数据结构/消息体]
}
{
    // 消息体
}
...


//失败返回

{
    "error_code": 91XX,
    "error_msg": "xxxxxxxxx"
}

关于错误返回值与错误代码,参见 错误码定义

互动下行—Callback方式

说明

如果第三方使用的是HTTP Callback的方式接受微博消息,那么第三方也需要提供一个类似[发送消息接口]的接口。要求与那个接口使用相同的参数和返回值。


URL

第三方自定义


支持格式

JSON


HTTP请求方式

POST


是否需要登录

true 登录授权方式,请参见本WIKI内的 如何登录授权


请求参数

参数字段 字段必选 字段类型 字段说明
source true string 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份(采用OAuth授权方式不需要此参数)
room_id true string 房间id
ts true long 时间戳(1970-01-01 00:00:00 起毫秒数)
msg_type true int 消息类型 1 - 评论消息 2 - 点赞消息
content true string 消息内容
uid true long 发送者ID
nickname true string 发送者昵称
avatar true string 发送者头像url
sign true string 对sign之外的其他所有参数进行签名的结果 见签名算法
extension false string 消息扩展字段(json object格式,默认为空json object)
offset false long 发消息的时间距离直播开始的偏移,单位ms。如果不传,或者传的是负数,做0处理,表示当前消息回放时不展示。


返回结果

//成功返回

{
    "error_code":0,    // 0表示成功 其他表示失败。需要看错误消息
    "error_msg":""
}


//失败返回

{
    "error_code": 91XX,
    "error_msg": "xxxxxxxxx"
}


签名算法

输入:

- 键值对列表

- 签名时用的appsecret


输出:

签名结果字符串


算法:

- 键值对列表的每一项按照key=value的方式组成该项的字符串,各项的字符串按照对应key的字典序排序(key不相同),然后用半角"&"符号连接形成一个字符串。

- 字符串按照UTF-8编码得到一个字节序列input, secret的字符串按UTF-8编码生成一个字节序列作为key,用hmac-md5的方式计算哈希值的字节序列,哈希值字节序列使用URL-safe-Base64编码,取第6到16个字符作为结果输出。


算法示例:

假设输入是:
kv-pair: {"a":"1", "c":"jerry", "b":"tom"}
appsecret:  123456
连接成的字符串就是:
a=1&b=tom&c=jerry
hmac-md5("a=1&b=tom&c=jerry",123456)
输出得到字节数组:[-117, -27, -78, -5, 73, 68, -64, -50, 4, 21, 16, -55, -55, -39, -31, -15]
转成URL-safe的base64字符串:i-Wy-0lEwM4EFRDJydnh8Q==
取6到16位(初始位为0)子串,包含第6位,不包含第16位,共10位:lEwM4EFRDJ


签名结果:

lEwM4EFRDJ

数据结构

消息体

{
    "room_id":string,  //房间信息
    "msg_type":1,
    "mid":long,
    "sender_info":{
        // 发送者的用户信息
    }
    "content":string,      //消息内容
    "extension":string,    //消息的扩展字段
    "offset": long,        //消息距离视频开始时间间隔
    "created_at":long,      //时间戳
    "msg_behavior": uint32,  // 聊天消息msg_type=1时 消息的显示行为  0:默认 1.弹幕
    "praises_count":int,    // 点赞消息msg_type=2时  当前总赞数
    "inc_praises":long    //点赞消息msg_type=2时 用户点赞次数 
}

错误码定义

错误码 错误说明
9101 认证失败
9102 内部错误
9103 数据格式错误
9104 消息内容包含垃圾信息
9105 已经存在
9106 数据不合法。与9103不同的地方在于:9103是数据格式错误, 比如int型的参数传了一个无法解析成int的字符串。而当前错误码表示数据格式本身没有问题, 但是是一个不合法的数据, 比如ID对应的实体不存在
9107 房间不允许发言
9108 用户不存在
9109 房间不存在
9110 token解析错误
9111 房间状态不正确
9112 用户被禁言
9113 当前操作不允许
1019 当前操作不支持