有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能描述

开始搜索日志。

接口说明

日志从产生到可搜索,中间可能存在分钟级延迟。
使用本接口发起异步搜索任务时,接口将在大约2s的时间返回,如果在返回时有部分或全部搜索结果,则返回已搜索出的结果的第一页(每页20个),如果暂未搜索到结果则返回空数组,因此该接口实际返回的 contents 数量可能为0到20之间不等,且是否还有更多搜索结果,不应参考 contents 的数量,而应参考 hasMore 字段。
当需要获取后续页时,使用 继续获取搜索结果 接口。
权限要求:超级管理员或系统管理员。

请求

请求示例

POST /user/v1/search/{OrganizationId}/log?user_token={UserToken}
请求参数:
OrganizationId:组织 ID,必选参数。
UserToken:用户令牌,必选参数。

请求体

application/json
请求体示例:
{
"keyword": "xxx",
"actionType": "UserManagement|Login",
"startTime": "2021-08-01T04:40:01.000Z",
"endTime": "2021-08-19T04:40:01.000Z",
"operator": "inkie",
"spaceTag": "all",
"searchAfter": {
"id": 18420,
"logType": "user",
"operationTime": "2021-08-01T04:40:01.000Z"
}
}
请求体字段说明:
keyword: 搜索关键字,可使用空格分隔多个关键字,关键字之间为“或”的关系并优先展示匹配关键字较多的项目;
actionType: 日志类型,字符串,多种类型用|分隔;当前支持类型如下:
Login 登录
UserManagement 用户管理
TeamManagement 团队管理
ShareManagement 分享相关,包括:分享文件
AuthorityAction 共享相关,包括:共享文件,权限修改,删除权限
FileAction 文件相关,包括:上传,下载,删除,修改,预览;
SyncAction 同步盘操作;
startTime/endTime: 搜索时间范围,建议使用示例中的标准时间,与时区无关;
operator: 搜索范围,操作者的昵称或手机号
spaceTag: 搜索空间类型,字符串或字符串数组,当前支持的类型包括:
all: 搜索所有空间类型,当不传 type 或传空时默认为 all;
personal: 仅搜索个人空间;
team: 仅搜索企业空间;
searchAfter: 从指定的日志开始搜索,可选参数
id: 日志 ID
logType: 日志类型,user | api
operationTime: 日志时间

响应

响应码

搜索成功,返回 HTTP 200 OK。

响应体

application/json
响应体示例:
{
"searchId": "FkRIUkRlbUJMU1JLWlFxQVBuQkJyMGcfVUFhYUl5TGFSaTZtZUpDcEpUcEtxdzoxNDYzMTMyOQ==",
"hasMore": false,
"searchFinished": false,
"total": {
"value": 30,
"relation": "eq"
},
"nextMarker": 20,
"contents": [
{
"logType": "user",
"operationTime": "2021-08-19T04:40:01.000Z",
"action": "团队管理",
"actionType": "TeamManagement",
"orgId": "1",
"spaceId": "xxx",
"spaceTag": "team",
"operatorId": "23",
"operatorName": "Inkie",
"operatorPhoneNumber": "18888888888",
"objectId": "234",
"objectName": "张三",
"objectType": "user",
"teamId": "222",
"teamPath": "研发组",
"details": "将张三添加至 研发组",
"IP": "211.149.189.135",
"IpLocation": "成都",
"device": "ios",
"attachInfo": null
},
...
],
"lastHit": {
"logType": "user",
"operationTime": "2021-08-19T04:40:01.000Z",
"action": "团队管理",
"actionType": "TeamManagement",
"orgId": "1",
"spaceId": "xxx",
"spaceTag": "team",
"operatorId": "23",
"operatorName": "Inkie",
"operatorPhoneNumber": "18888888888",
"objectId": "234",
"objectName": "张三",
"objectType": "user",
"teamId": "222",
"teamPath": "研发组",
"details": "将张三添加至 研发组",
"IP": "211.149.189.135",
"IpLocation": "成都",
"device": "ios",
"attachInfo": null
}
}
响应体字段说明:TODO
searchId:搜索任务 ID,用于异步获取搜索结果。
hasMore:布尔型,是否有更多搜索结果。
searchFinished:布尔型,搜索任务是否完成。
hitsCount:本次搜索返回的结果总数。
total
value:数字,总数。
relation:字符串,eq表示总数为 total.value,gte 表示总数比 total.value 更多。
nextMarker:用于获取后续页的分页标识,仅当 hasMore 为 true 时才返回该字段。
contents:第一页搜索结果,可能为空数组,有关异步搜索的说明请参阅【接口说明】。
logType:日志类型 user | api
operationTime:操作时间。
action:操作。
actionType:操作类型,见请求体中 actionType 枚举类型。
orgId:组织 ID。
spaceId:空间 ID,非必返。
spaceTag:空间 tag,非必返。
operatorId:操作者 ID。
operatorName:操作者昵称。
operatorPhoneNumber:操作者手机号。
objectId:操作对象 ID。
objectName:操作对象名称。
objectType:操作对象类型 user | team | organization。
teamId:团队 ID(适用于团队操作类型)。
teamPath:团队 Path(适用于团队操作类型)。
details:操作内容。
IP:IP 地址。
IpLocation:IP 所对应的城市。
device:操作终端,WEB/IOS/...。
attachInfo:其他信息,JSON 对象。
lastHit:搜索任务结束时,返回本次搜索任务的最后一条记录,数据结构与 contents 中记录一致;搜索任务未结束则无此字段。