实时语音Talk SDK配套的服务器API,适合业务服务器调用。用于房间管理。
https://api.youme.im/$ver/$servicename/$command?
appkey=$appkey&
identifier=$identifier&
curtime=$curtime&
checksum=$checksum
REST API仅支持POST方法,其请求包体为JSON格式,具体的包体格式参见每个API的详细描述。需要特别注意的是,POST包体不能为空,即使某条协议包体中不需要携带任何信息,也需要携带一个空的JSON对象,即{}。
除非发生网络错误(例如502错误),REST API的调用结果均为200,真正的API调用错误码与错误信息是在HTTP应答包体中返回的。
REST API的应答包体也是JSON格式,其格式符合如下特征:
{
"ActionStatus": "OK" // OK表示处理成功,FAIL表示失败
"ErrorCode": 0, // 0为成功,其它为失败
"ErrorInfo": "", // 失败的情况下,会有描述
// REST API其他应答内容
}
应答包体中包含ActionStatus、ErrorInfo、ErrorCode三个属性,其含义如下:
错误码 | 响应串 | 含义描述 |
---|---|---|
ActionStatus | String | 请求处理的结果,OK表示处理成功,FAIL表示失败 |
ErrorInfo | String | 失败原因 |
ErrorCode | Integer | 错误码,0为成功,其他为失败,可查询错误码表得到具体的原因 |
根据频道ID查询主播用户所在频道内的在线用户数。
https://api.youme.im/v1/im/query_talk_channel_user_count?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"ChannelID": "12345"
}
body为json格式,各个字段解释如下:
ChannelID
: 用户所在Talk频道ID,字符串。
{
"ChannelID": "12345",
"UserCount": 36
}
UserCount
:查询到的该频道内的在线人数。
根据游戏ID和频道ID,查询该频道内的所有用户ID。
https://api.youme.im/v1/im/get_talk_user_list_on_a_channel?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
" AppID": 1000,
"ChannelID":"1234"
}
AppID
游戏ID,整数。
ChannelID
频道ID,app内唯一,字符串。
{
"AppID": 1000,
"ChannelID": "1234",
"Total": 2,
"UserList": [
{
"UserID": "u#123"
},
{
"UserID": "u#345"
}
]
}
根据游戏ID,查询该游戏当前的所有频道ID。
https://api.youme.im/v1/im/get_talk_channel_list?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"AppID": 1000
}
body为json格式,各个字段解释如下:
AppID
: 游戏ID,整数,必选字段。
{
"AppID": 1000,
"Total": 2,
"ChannelList": [
{
"ChannelID": "ch123",
"UserCount": 12
},
{
"ChannelID": "ch345",
"UserCount": 5
}
]
}
根据游戏ID、频道ID和用户ID,踢出该频道内的指定用户。
https://api.youme.im/v1/im/admin_kick_user?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"app_id": 1000,
"channel_id": "ch345",
"kick_user_id": "u#456",
"kick_time": 6000,
"op_user": "op_user"
}
app_id
: 游戏ID,整数,必选字段。
channel_id
: 频道ID,字符串,必选字段。
kick_user_id
: 要踢出的用户游戏ID,字符串,必选字段。
kick_time
: 要将该用户踢出频道的时长,单位s,整数。
op_user
: 操作人,登记该踢出动作的执行人,字符串。
{
"ActionStatus": "OK",
"ErrorCode": 0,
"ErrorInfo": "",
}
根据游戏ID、频道ID,查询该频道目前的状态,状态包括不存在、空闲、会议中三种。
https://api.youme.im/v1/im/query_talk_channel_status?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"AppID": 1000,
"ChannelID": "ch345"
}
AppID
: 游戏ID,整数,必选字段。
ChannelID
: 频道ID,字符串,必选字段。
{
"AppID": 1000,
"ChannelID": "ch345",
"Status": 1,
}
其中状态Status的取值含义是1(不存在)、2(空闲,频道人数是0)、3(会议中,频道人数大于0)。
根据游戏ID、游戏用户ID,查询该用户目前的状态信息。
https://api.youme.im/v1/im/query_talk_user_status?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"AppID": 1000,
"UserID": "u#123"
}
AppID
: 游戏ID,整数,必选字段。
UserID
: 游戏用户ID,字符串,必选字段。
{
"AppID": 1000,
"UserID": "u#123",
"Status": [
{
"ChannelID": "ch345",
"UseVideo": 1,
"UseAudio": 1,
"VideoFrameRate": 15,
"VideoBitRate": 470,
"AudioBitRate": 192
}
]
}
响应中的ChannelID是用户当前的频道ID,UseVideo标识是否使用视频(1在使用,0未使用),UseAudio标识是否使用音频(1在使用,0未使用),VideoFrameRate是视频帧率(单位fps),VideoBitRate和AudioBitRate分别是视频、音频的码率(单位kbps)。
根据游戏ID、游戏用户ID和日期,查询该用户的通话记录。
https://api.youme.im/v1/im/query_talk_user_call?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"AppID": 1000,
"UserID": "u#123",
"QueryDate": 20171124,
"StartSeq": 0,
"Limit": 10
}
AppID
: 游戏ID,整数,必选字段。
UserID
: 游戏用户ID,字符串,必选字段。
QueryDate
: 查询日期,整数,格式为YYYYMMDD,必选字段。
StartSeq
: 起始序号,整数,默认是0,可选字段。
Limit
: 一次限制返回的条数,整数,默认1,最大100,可选字段。
{
"AppID": 214,
"UserID": "u#123",
"Call": [
{
"ChannelID": "ch345",
"JoinTime": 1511489108,
"LeaveTime": 1511489540,
"CallDuration": 432
}
]
}
响应中的ChannelID是用户通话时的频道ID,JoinTime是加入该频道的时间(UTC时间戳),LeaveTime是离开频道的时间(UTC时间戳),CallDuration是通话时长(单位s)。
根据Talk频道ID,查询该频道里的上麦的用户。
https://api.youme.im/v1/im/get_talk_speaker_list_on_a_channel?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"ChannelID": "ch123"
}
AppID
: 游戏ID,整数,可选字段,当不传入时,则取请求的AppKey所对应的AppID。
ChannelID
: 频道ID,字符串,必选字段。
{
"AppID": 1000,
"ChannelID": "ch123",
"Total": 2,
"UserList": [
{
"UserID": "u#123"
},
{
"UserID": "u#345"
}
]
}
根据Talk频道ID,向该频道内的用户发送文本消息。
https://api.youme.im/v1/im/push_mcu_msg?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"meeting_id": "12345",
"user_id": "admin",
"receiver_id": "",
"content":"测试消息222"
}
meeting_id
: 频道ID,字符串,必选字段,消息要发往的频道。
user_id
: 用户ID,字符串,可选字段,透传给客户端,标记发送消息的用户,如“admin”。
receiver_id
: 如为"",则广播给频道内所有用户,若为指定用户,则发送给指定用户。
content
: 消息内容,字符串,必选字段,长度不要超过2048字节。
切换频道内用户用户身份。
https://api.youme.im/v1/im/change_user_ Identity?appkey=123456789&identifier=admin&curtime=123456789&checksum=123456789abcdefg
header
Content-Type: application/json
body
{
"ChannelID": "12345",
"UserID": "leef",
“IdentityType”: 1 ,
“RequstId”: 1591177759251
}
UserID
: 用户ID,字符串,必选字段。
ChannelID
: 频道ID,字符串,必选字段。
IdentityType
: 身份类型,整形, 必选字段 (1 自由讲话者, 2 需要通过抢麦等请求麦克风权限之后才可以讲话, 3听众, 4 指挥, 5主播, 6 嘉宾)。
RequstId
: 请求唯一ID,整形(递增), 可选字段。
{
"ChannelID": "12345",
"UserID": "leef",
“ResponetId”: 1591177759251,
“Code”: 0
}
UserID
: 用户ID,字符串,必选字段。
ChannelID
: 频道ID,字符串,必选字段。
ResponetId
: 对应请求唯一ID(RequstId),整形(递增), 可选字段。
code
: 处理结果状态码, 整形 。code 含义:
0 处理成功 ,
401 频道不存在,
402 用户不存在,
403 请求ID小于已经处理的请求,
500 服务器错误。