# 增加保护范围

在电子表格工作表中设置多个保护范围，支持对行或列设置保护范围。

## 基本概念
设置保护范围指对工作表中的任意行或列进行保护，并可设置其他协作者是否有权限编辑该数据，有效保障数据信息安全。

## 使用限制

- 单次调用该接口，最多支持为 5,000 行或列设置保护范围。
- 仅支持对行或列设置保护范围，暂不支持对单元格设置保护范围。
## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheet_token/protected_dimension
HTTP Method | POST
接口频率限制 | [100 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 查看、评论、编辑和管理云空间中所有文件(drive:drive)<br>查看、评论、编辑和管理电子表格(sheets:spreadsheet)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | 通过访问凭证（access_token）对调用者身份进行鉴权。可选值：<br>- `tenant_access_token`：	租户授权凭证。应用代表租户（即企业或团队）执行对应操作。示例值："Bearer t-7f1bcd13fc57d46bac21793aabcef"<br>- `user_access_token`：用户授权凭证。应用代表用户执行对应操作。示例值："Bearer u-7f1bcd13fc57d46bac21793aabcef"<br>了解更多，参考[获取访问凭证](https://open.feishu.cn/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM)。
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
user_id_type | string | 否 | 指定请求体中 users 字段对应的用户 ID 类型。可选值如下所示。了解更多，参考[用户身份概述](https://open.feishu.cn/document/home/user-identity-introduction/introduction)。可选值：<br>- `open_id`：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。了解更多：[如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- `union_id`：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。了解更多：[如何获取 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)<br>**注意**：<br>若要在请求体中传入 users 参数，user_id_type 参数必填。

### 路径参数

名称 | 类型 | 描述
---|---|---
spreadsheet_token | string | 电子表格的 token。可通过以下两种方式获取。了解更多，参考[电子表格概述](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)。<br>-  电子表格的 URL：https://sample.feishu.cn/sheets/==Iow7sNNEphp3WbtnbCscPqabcef==<br>- 调用[获取文件夹中的文件清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/list)<br>**示例值**："Iow7sNNEphp3WbtnbCscPqabcef"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
addProtectedDimension | / | 是 | 需要增加保护范围的维度信息。最多支持传入 50 个维度信息。
dimension | / | 是 | 要保护的行或列的信息
sheetId | string | 是 | 电子表格工作表的 ID。调用[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query)获取 ID。
majorDimension | string | 否 | 更新的维度，默认 ROWS。可选值：<br>- ROWS：行<br>- COLUMNS：列
startIndex | int | 是 | 开始的行或列的索引。从 1 开始计数。若 `startIndex` 为 3，则从第 3 行或列开始保护。包含第 3 行或列。
endIndex | <md-text type="field-type" >int | 是 | 结束的行或列的索引。从 1 开始计数。若 `endIndex` 为 7，则保护到第 7 行或列。包含第 7 行或列。
editors | array&lt;int64&gt; | 否 | 允许编辑保护范围的用户的 `lark_id`。该字段已不推荐使用，你可使用 `users` 参数代替。
users | array&lt;string&gt; | 否 | 允许编辑保护范围的用户的 ID。ID 类型取决于查询参数 `user_id_type` 的取值。
lockInfo | string | 否 | 保护范围的备注信息

### 请求体示例

```json
{
    "addProtectedDimension":[
        {
            "dimension":{
                "sheetId":"Q7PlXT",
                "majorDimension":"COLUMNS",
                "startIndex":10,
                "endIndex":13
            },
            "users":[
                "ou_326f4b0552770f2de069deb256dabcef"
            ],
            "lockInfo":"你能编辑"
        }
    ]
}
```

###  cURL 请求示例
```bash
curl --location --request POST 'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcngNygNfuqhxTBf588jabcef/protected_dimension?user_id_type=open_id' \
--header 'Authorization: Bearer t-e346617a4acfc3a11d4ed24dca0d0c0fc8e0067e' \
--header 'Content-Type: application/json' \
--data-raw '{
    "addProtectedDimension":[
        {
            "dimension":{
                "sheetId":"Q7PlXT",
                "majorDimension":"COLUMNS",
                "startIndex":10,
                "endIndex":13
            },
            "users":[
              "ou_326f4b0552770f2de069deb256dabcef"
            ],
            "lockInfo":"你能编辑"
        }
    ]
}'
```

## 响应
### 响应体

名称 | 类型 | 描述
---|---|---
addProtectedDimension | array&lt;interface&gt; | 保护范围的维度信息
dimension | / | 保护范围的信息
sheetId | string | 保护范围所在的工作表的 ID
majorDimension | string | 保护范围的维度。枚举值：<br>- ROWS：行<br>- COLUMNS：列
startIndex | int | 保护范围开始的行或列的索引。
endIndex | int | 保护范围结束的行或列的索引。
editors | array&lt;int64&gt; | 允许编辑保护范围的用户的 `lark_id`。
users | array&lt;string&gt; | 允许编辑保护范围的用户的 ID。ID 类型取决于查询参数 `user_id_type`。
lockInfo | string | 保护范围的备注信息
protectId | string | 保护范围的 ID

### 响应体示例  

```json
{
  "code": 0,
  "data": {
    "addProtectedDimension": [
      {
        "dimension": {
          "endIndex": 13,
          "majorDimension": "COLUMNS",
          "sheetId": "Q7PlXT",
          "startIndex": 10
        },
        "lockInfo": "你能编辑",
        "protectId": "7379738014546821122",
        "users": [
          "ou_449b53ad6aee526f7ed311b216aabcef"
        ]
      }
    ]
  },
  "msg": "success"
}
```  

### 错误码

具体可参考：[服务端错误码说明](https://open.feishu.cn/document/ukTMukTMukTM/ugjM14COyUjL4ITN)
