活动日志 API

使用活动日志 API 查看企业中发生的事件。

入门

谁可以使用活动日志 API

  • 活动日志 API 仅适用于企业版。
  • 只有企业管理员才能生成访问令牌。

活动日志 API 允许你对企业事件进行编程访问,你可以查看任意企业中成员和访客在企业中发生的事件,你可以使用活动日志 API 构建你的自定义应用程序。

生成企业访问令牌

  1. 1.在侧边栏点击「企业管理」。
  2. 2.进入「设置」页。
  3. 3.点击「企业访问令牌」。
  4. 4.点击「生成访问令牌」。
  5. 5.设置令牌的名称和过期时间。
  6. 6.点击「生成令牌」。生成后请立刻复制并妥善保管令牌,一旦关闭弹窗,将没有机会再次查看。

使用企业访问令牌

你可以通过将令牌传递到 Authorization: Bearer <token> 请求头中来调用 API。 以下是一个示例:

curl 'https://api.motiff.cn/api/v1/organizations/activity_logs?orgId=${orgId}' \
--header 'Authorization: Bearer <TOKEN>'

Endpoints

返回活动日志事件列表。

HTTP Endpoint

GET /api/v1/organizations/activity_logs

路径参数是否必填参数类型描述
orgIdString查询企业的 ID
actionTypesString响应事件的操作类型。可以有多个值,用逗号分隔。默认情况下返回所有操作类型的事件。
startTimeNumber查询最远事件的 Unix 时间戳(毫秒)。如果未指定,默认 0 。
endTimeNumber查询最近事件的 Unix 时间戳(毫秒)。如果未指定,默认为当前时间戳。
limitNumber单次请求返回的最大事件数。如果未指定,此参数默认为 1000。
orderString按时间戳对事件进行排序。该参数可以是“ASC”(默认)或“DESC”。
cousorString事件总数超过 limit 上限时,API 将对结果进行分页, 响应中包含 cursor 字段。要获取下一批事件,请将 cursor 参数添加到新的查询字符串中。

注:只能查询到 2024 年 9 月 15 日之后的事件。

Error codes

Error codeDescription
400参数错误
401认证失败
403无权限访问所请求的活动日志
429接口限流

使用查询字符串参数向你的请求添加过滤器。你可以添加路径参数的组合来创建特定查询。以下是一些示例:

  • 获取过去所有管理员修改席位的记录
curl -H 'Authorization: Bearer <TOKEN>' 'https://api.motiff.cn/api/v1/organizations/activity_logs? orgId=xxx&actionTypes=upgrade_seat,downgrade_seat'
  • 获取 2024-06-01 08:20:00 UTC 到 2024-08-01 17:05:08 UTC 之间的所有创建团队事件
curl -H 'Authorization: Bearer <TOKEN>' 'https://api.motiff.cn/api/v1/organizations/activity_logs? orgId=xxx&actionTypes=create_team&startTime=1717222800000&endTime=1722534308000'
  • 事件总数超过 limit 上限时,使用响应中的 cursor 字段获取下一批事件,需要将 orgIdcursor 参数添加到新的查询字符串中
curl -H 'Authorization: Bearer <TOKEN>' 'https://api.motiff.cn/api/v1/organizations/activity_logs?orgId=xxx&cursor=Y3Vyc29yIGN1cnNvciBjdXJzb3I='

Events

活动日志 API 返回的每个事件都包含四个部分:actor、action、entity 和 context。

  • actor 是执行该操作的用户。可以通过三个属性来识别用户: email、 id 和 name 。
  • actionactor 执行的任务或活动。其中 action_type 表示操作的类型,details表示相关的元数据。查看支持的操作类型和对应元数据
  • entity 是被 actor 执行操作的实体。它可以是用户、文件、项目或其他资源类型。查看支持的 entity 类型和属性
  • context 包含事件的其他上下文信息:
    • orgId: 事件发生所在企业的 ID。
    • teamId: 事件发生所在团队的 ID。

此示例显示管理员邀请用户加入企业时记录的事件:

{ "actor": { "name": "admin" "id": "19799193456756", "email": "admin@motiff.com", }, "action": { "action_type": "invite_org_member" "details": { "seat_type": "viewer" }, }, "entity": { "nickname": "username", "id": "187991918120844", "type": "user" "email": "username@motiff.com", }, "context": { "teamId": "wUSjbhzh4xaR1gTeU7mRRX" "orgId": "AH0gDGssK5AVX01hsTQjag", }, "id": "208397249393110", "eventTime": 1717222800000 }

Entity Type

以下是你可以在 API 响应的 Entity 字段下找到的常见类型:

User

字段类型描述
idNumber用户唯一标识
nicknameString姓名
emailString邮箱

File

字段类型描述
idString文件唯一标识
nameString文档名称
link_accessString文件链接分享权限

Project

字段类型描述
idString项目唯一标识
nameString项目名称

Team

字段类型描述
idString团队唯一标识
nameString团队名称

Organization

字段类型描述
idString组织唯一标识
nameString组织名称

Action Types

以下是你可以在 API 响应的 action 字段下找到的操作类型:

action_typedescriptiondetails
create_file创建文件project_id 项目 ID
project_name 项目名称
ai_create_file生成设计系统文件project_id 项目 ID
project_name 项目名称
import_file导入文件project_id 项目 ID
project_name 项目名称
copy_file创建文件副本


copy_file_to_draft创建文件副本到草稿


move_file移动文件project_id_old 操作前的项目 ID
project_name_old 操作前的项目名称
project_id_new 操作后的项目 ID
project_name_new 操作后的项目名称
trash_file删除文件


delete_file永久删除文件


restore_file恢复文件project_id 项目 ID
project_name 项目名称

open_file访问文件access 访问文件时的权限
rename_file重命名文件file_name_old 操作前的文件名称
file_name_new 操作后的文件名称
export_file导出文件内容


invite_file_member邀请用户加入文件file_id 文档 ID
file_name 文档名称
user_permission 用户权限
remove_file_member从文件中移除用户file_id 文档 ID
file_name 文档名称
user_permission_old 操作前的用户权限
leave_file离开文件file_id 文档 ID
file_name 文档名称
user_permission_old 操作前的用户权限
change_file_member_access修改文件成员权限file_id 文档 ID
file_name 文档名称
user_permission_old 操作前的用户权限
user_permission_new 操作后的用户权限
change_file_inherited_access修改文件的项目继承权限inherited_access_old 操作前的继承权限
inherited_access_new 操作后的继承权限
enable_file_link_access启用文件链接分享


disable_file_link_access禁用文件链接分享


change_file_link_access修改文件链接分享配置file_link_access_old 操作前的文件的链接分享配置
file_link_access_new 操作后的文件的链接分享配置
open_file_password打开文件的链接分享密码


close_file_password关闭文件的链接分享密码


reset_file_password重置文件的链接分享密码


create_project在团队下创建项目team_id 团队 ID
team_name 团队名称
delete_project删除项目team_id 团队 ID
team_name 团队名称
move_project移动项目team_id_old 操作前的团队id
team_name_old 操作前的团队名称
team_id_new 操作后的团队id
team_name_new 操作后的团队名称
rename_project重命名项目team_name_old 操作前的团队名称
team_name_new 操作后的团队名称
invite_project_member邀请用户加入项目project_id 项目 ID
project_name 项目名称
user_permission 用户权限
remove_project_member从项目中移除成员project_id 项目 ID
project_name 项目名称
user_permission_old 操作前的用户权限
leave_project从项目中离开project_id 项目 ID
project_name 项目名称
user_permission_old 操作前的用户权限
change_project_member_access修改项目成员权限project_id 项目 ID
project_name 项目名称
user_permission_old 操作前的用户权限
user_permission_new 操作后的用户权限
change_project_inherited_access==修改项目的团队继承权限==inherited_access_old 操作前的继承权限
inherited_access_new 操作后的继承权限
create_team创建团队team_org_access 团队公开性配置
delete_team删除团队


restore_team恢复团队


invite_team_member邀请用户加入团队team_id 团队 ID
team_name 团队名称
user_permission 用户权限
remove_team_member从团队中移除成员team_id 团队 ID
team_name 团队名称
user_permission_old 操作前的用户权限
leave_team离开团队team_id 团队 ID
team_name 团队名称
user_permission_old 操作前的用户权限
change_team_member_access修改团队成员权限team_id 团队 ID
team_name 团队名称
user_permission_old 操作前的用户权限
user_permission_new 操作后的用户权限
join_team_by_invite_link通过团队邀请链接加入团队team_id 团队 ID
team_name 团队名称
rename_team重命名团队team_name_old 操作前的团队名称
team_name_new 操作后的团队名称
login登录


logout退出登录


remove_org_member移除企业成员


join_org_by_access_file访问文件加入企业file_id 文档 ID
file_name 文档名称
add_org_admin将企业成员设为企业管理员


remove_org_admin移除企业管理员


open_file_prototype访问文件原型


invite_org_member邀请用户加入企业seat_type 席位类型
apply_org_seat_when_import_file申请席位:导入文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
apply_org_seat_when_create_file申请席位:创建文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
apply_org_seat_when_move_file申请席位:移动文件seat_type 席位类型
project_id_old 操作前的项目 ID
project_name_old 操作前的项目名称
project_id_new 操作后的项目 ID
project_name_new 操作后的项目名称
file_id 文档 ID
file_name 文档名称
apply_org_seat_when_edit_file申请席位:编辑文件seat_type 席位类型
file_id 文档 ID
file_name 文档名称
apply_org_seat_when_use_dev_mode申请席位:在文件中使用研发模式seat_type 席位类型
file_id 文档 ID
file_name 文档名称
approve_seat_request通过席位申请seat_type 席位类型
deny_seat_application拒绝席位申请seat_type 席位类型
upgrade_themselves_when_import_file自主升级席位:导入文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
upgrade_themselves_when_create_file自主升级席位:创建文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
upgrade_themselves_when_move_file自主升级席位:移动文件seat_type 席位类型
project_id_old 操作前的项目 ID
project_name_old 操作前的项目名称
project_id_new 操作后的项目 ID
project_name_new 操作后的项目名称
file_id 文档 ID
file_name 文档名称
upgrade_themselves_when_edit_file自主升级席位:编辑文件seat_type 席位类型
file_id 文档 ID
file_name 文档名称
upgrade_themselves_when_use_dev_mode自主升级席位:在文件中使用研发模式seat_type 席位类型
file_id 文档 ID
file_name 文档名称
seat_start_billing_as_grace_period_ends席位结束宽限期开始计费seat_type 席位类型
upgrade_seat升级席位seat_type_old 操作前的席位类型
seat_type_new 操作后的席位类型
downgrade_seat降级席位seat_type_old 操作前的席位类型
seat_type_new 操作后的席位类型
open_org_public_link_sharing启用对外链接分享


close_org_public_link_sharing禁用对外链接分享


upgrade_themselves_when_batch_move_file自主升级席位:批量移动文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
apply_org_seat_when_batch_move_file申请席位:批量移动文件seat_type 席位类型
project_id 项目 ID
project_name 项目名称
enable_file_viewer_permissions修改文件的可查看者权限为允许复制、分享、导出


disable_file_viewer_permissions修改文件的可查看者权限为不允许复制、分享、导出


change_team_org_access修改团队对企业的公开性team_org_access_old 操作后的团队公开性配置
team_org_access_new 操作前的团队公开性配置
upgrade_themselves_when_share_drafts_v2自主升级席位:分享草稿文件seat_type 席位类型
file_id 文档 ID
file_name 文档名称
apply_org_seat_when_share_drafts_V2申请席位:分享草稿文件seat_type 席位类型
file_id 文档 ID
file_name 文档名称