# 开放平台概述
## 应用类型
在Lark开放平台，你可以根据你的需要开发企业自建应用或者应用商店应用。

|  应用类型         |     开发人员     |     使用人员  |  应用能力 |
| --------- | --------------- | -------   | ----------- | --------- |
| 企业自建应用 | 企业内部人员  | 企业内部人员  |  小程序、网页、机器人 |
| 应用商店应用 | Lark平台上的独立服务商  | Lark用户 |  小程序、网页、机器人 | 

## 应用能力 
Lark应用包含多种应用能力，你可以根据需要选择至少其中一种构建你的应用。

|      | 小程序           | 网页       | 机器人         | 
| --------- | --------------- | -------   | ----------- | --------- |
|**适合场景** | 需要用户在界面上操作的应用 |需要用户在界面上操作的应用。可将已开发的网页接入Lark |仅需要用户接收消息或对消息做出响应 |
|**使用体验** | 接近原生的流畅的体验 |H5网页体验需要开发者自己优化 | 可快速消息收发|
|**开发环境** | 使用[Lark开发者工具](https://open.larksuite.com/document/uYjL24iN/ucDOzYjL3gzM24yN4MjN) |自行搭建开发环境 | 服务端开发，消息卡片提供[搭建工具](https://open.larksuite.com/tool/cardbuilder)|
|**服务端 API支持** | ✅ | ✅|✅ |
|**接入方式** | 支持[组件库](https://open.larksuite.com/document/uYjL24iN/uEzMuEzMuEzM)和[小程序SDK](https://open.larksuite.com/document/uYjL24iN/uADOy4CM4IjLwgjM) |[H5-JS-SDK](https://open.larksuite.com/document/uYjL24iN/uITO4IjLykDOy4iM5gjM) |[机器人 API](https://open.larksuite.com/document/ukTMukTMukTM/uATM04CMxQjLwEDN)、[消息卡片](https://open.larksuite.com/document/ukTMukTMukTM/uYTNwUjL2UDM14iN1ATN) |
|**是否支持应用商店** | 支持 |支持 |支持 |

## 名词解释
### 用户相关
**注意事项**：注意：同一个账号可以加入多个企业，在不同企业中的员工身份会被视为不同的用户。
**注意事项**：**2021年4月起**，我们更新了用户管理相关接口策略，支持复用已经删除的用户user_id/employee_id。更新后，雇员ID不再是企业内全局唯一（比如用户id可能在“用户离职再入职”等场景中被复用），**不推荐**作为应用中用户的唯一标识，建议使用 union_id 替代。
- **user_id：** 用户ID，在职员工在企业内的唯一标识，支持企业自定义，同一个在职用户的 user_id 对于所有的应用都保持一致。user_id 主要用于在不同应用间进行用户数据打通。需要单独申请 [获取用户 userid](https://open.larksuite.com/document/ukTMukTMukTM/uQjN3QjL0YzN04CN2cDN) 权限才能在接口中获取该字段数据，仅企业自建应用才能申请该权限。

**特别说明：** 在部分接口中“user_id”这个字段也同时表示==某一种用户身份标识==的含义，会根据接口中 “user_id_type”参数，表示employee_id、open_id或union_id的其中一种，开发者请根据上下文注意区分。
- **employee_id：** 雇员ID，在一些历史版本接口中，含义同 user_id。
- **open_id：** 用户开放加密ID标识的一种，在接口中默认提供。OpenID 用于在同一个应用中对用户进行标识，对于同一个用户，不同应用获取到的openID是不一样的。
- **union_id：** 用户开放加密ID标识的一种，在接口中默认提供。UnionID 用于在同一个ISV开发主体下对用户进行标识，对于同一个用户，同一个ISV开发主体名下（对自建应用则是同一个租户名下）的应用，获取到的unionID是相同的，而不同主体名下应用获取到的unionID是不同的。

### 应用相关
- **app_id：** Lark开放平台应用的唯一标识。
- **app_secret：** Lark开放平台应用的秘钥。创建 APP 的时候由开放平台生成，可以用于接口调用，请务必注意保管，应用开发者可在 ==开发者后台 > 应用详情页面 > 凭证与基础信息== 内查看 app_secret。
- **scope：** 调用开放平台接口、获取数据的权限。每一个应用需要在版本中声明自己所需要的权限，并且得到安装该应用的租户管理员授权通过，才可以实际拥有某一个租户下的具体权限。缺失权限的应用，可能会出现接口调用不同、获取不到事件推送、接口/事件中缺失一些字段等问题，开发者可以自行查看开发文档，了解应用需要哪些权限。开发者可以在 ==开发者后台 > 应用详情页面 > 权限管理== 内查看和声明应用权限。
- **app_ticket：** Lark开放平台通过 APP 的事件通知地址定时推送给 APP 后端的一个短期有效票据，是商店应用获取 app_access_token 的必要参数之一。开发者可以不关注 ticket 的有效期，用最新收到的 ticket 即可，如果调用接口发现 ticket 失效，说明新 ticket 推送没收到，可以调用接口触发再次推送。仅应用商店应用有该票据。

### 企业相关
**注意事项**：**2021年4月起**，我们更新了部门管理相关接口策略，支持复用已经删除的部门department_id。更新后，部门ID不再是全局唯一，**不推荐**作为应用中部门的唯一标识，建议使用 open_department_id 替代。
- **tenant_key：** 企业唯一标识。租户安装应用时开放平台通过事件推送给应用，或在用户登录/租户授权时返回。
- **department_id：** 部门的自定义ID，最大长度为128，且不能以od-作为开头。
- **open_department_id：** 部门开放加密ID标识，open_department_id 跨应用、跨开发主体都是相同的。

### 访问凭证
- **user_access_token、tenant_access_token、app_access_token** 等访问凭证的说明，请参见[API访问凭证概述](https://open.larksuite.com/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM)

### 其它
- **chat_id：** 会话（包括单聊、群聊）的唯一标识。群列表接口返回。
- **open_message_id：** 发送消息体的唯一标识。对消息进行处理需要作为参数传入。
