# 修改保护范围

修改电子表格工作表中指定的保护范围。

## 使用限制
单次调用该接口，最多支持修改 10 个保护范围。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheetToken/protected_range_batch_update
HTTP Method | POST
支持的应用类型 | 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"

### 路径参数

名称 | 类型 | 描述
---|---|---
spreadsheetToken | 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"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
requests | / | 是 | 需要增加保护范围的维度信息。支持传入多个维度信息。
protectId | string | 是 | 保护范围 ID，可通过[获取表格元数据](https://open.feishu.cn/document/ukTMukTMukTM/uETMzUjLxEzM14SMxMTN) 获取。
dimension | / | 否 | 要保护的行或列
sheetId | string | 是 | 电子表格工作表的 ID。调用[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query)获取。
majorDimension | string | 是 | 保护范围的维度。可选值：<br>- ROWS：行<br>- COLUMNS：列
startIndex | int | 是 | 开始的行或列的索引。从 1 开始计数。若 `startIndex` 为 3，则从第 3 行或列开始保护。包含第 3 行或列。
endIndex | int | 是 | 结束的行或列的索引。从 1 开始计数。若 `endIndex` 为 7，则保护到第 7 行或列。包含第 7 行或列。
editors | array<int64> | 否 | 增加或删除可编辑保护范围的用户 ID 列表
addEditors | <md-text type="field-type" > | 否 | 增加的用户 ID 列表，用户需要有文档的编辑权限。
memberType | string | 是 | 用户 ID 类型，可选值：<br>- userId：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。详情参考[如何获取 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>- openId：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。详情参考[如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- unionId：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。详情参考[如何获取 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)
memberId | string | 是 | 用户 ID，类型由 `memberType` 决定。
delEditors | <md-text type="field-type" ></md-text> | 否 | 需要删除的用户的列表
memberType | string | 是 | 用户 ID 类型，可选值：<br>- userId：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。详情参考[如何获取 User ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>- openId：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。详情参考[如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- unionId：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。详情参考[如何获取 Union ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)
memberId | string | 是 | 用户 ID，类型由 `memberType` 决定。
lockInfo | string | 否 | 保护范围的备注信息

### 请求体示例
```json
{
    "requests": [
        {
            "protectId": "6947942538267541505",
            "dimension": {
                "majorDimension": "ROWS",
                "sheetId": "Q7PlXT",
                "startIndex": 2,
                "endIndex": 4
            },
            "editors": {
                "addEditors": [
                    {
                        "memberType": "userId",
                        "memberId": "667338922291111404"
                    }
                ],
                "delEditors": [
                    {
                        "memberType": "userId",
                        "memberId": "667338922291122404"
                    }
                ]
            },
            "lockInfo": "备注信息"
        }
    ]
}
```
### cURL 请求示例
```bash
curl --location --request POST 'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcngNygNfuqhxTBf588jwgWbJ/protected_range_batch_update' \
--header 'Authorization: Bearer t-e346617a4acfc3a11d4ed24dca0d0c0fc8e0067e' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "protectId": "6947942538267541505",
            "dimension": {
                "majorDimension": "ROWS",
                "sheetId": "Q7PlXT",
                "startIndex": 2,
                "endIndex": 4
            },
            "editors": {
                "addEditors": [
                    {
                        "memberType": "userId",
                        "memberId": "667338922291111404"
                    }
                ],
                "delEditors": [
                    {
                        "memberType": "userId",
                        "memberId": "667338922291122404"
                    }
                ]
            },
            "lockInfo": "备注信息"
        }
    ]
}'
```
## 响应
### 响应体

参数 | 类型 | 说明
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
replies | array&lt;interface&gt; | 修改后的保护范围的信息
protectId | string | 保护范围 ID
sheetId | string | 工作表 ID
dimension | / | 保护的行或列
sheetId | string | 电子表格工作表的 ID
startIndex | int | 开始的行或列的索引。从 1 开始计数。若 startIndex 为 3，则从第 3 行或列开始保护。包含第 3 行或列。
endIndex | int | 结束的行或列的索引。从 1 开始计数。若 endIndex 为 7，则保护到第 7 行或列。包含第 7 行或列。
majorDimension | <md-text type="field-type">string | 保护范围的维度。枚举值：<br>- ROWS：行<br>- COLUMNS：列
editors | / | 增加或删除的可编辑保护范围的用户 ID 列表
addEditors | array&lt;interface&gt; | 增加的用户 ID 列表
memberType | string | 用户 ID 类型
memberId | string | 用户 ID，类型由 memberType 决定。
delEditors | array&lt;interface&gt; | 删除的用户的列表
memberType | string | 用户 ID 类型
memberId | string | 用户 ID，类型由 memberType 决定。
lockInfo | string | 修改的备注信息

### 响应体示例
```json
{
    "code": 0,
    "msg": "Success",
    "data": {
        "replies": [
            {
                "protectId": "6947942538267541505",
                "dimension": {
                    "sheetId": "Q7PlXT",
                    "startIndex": 2,
                    "endIndex": 4,
                    "majorDimension": "ROWS"
                },
                "editors": {
                    "addEditors": [
                        {
                            "memberType": "userId",
                            "memberId": "667338922291111404"
                        }
                    ],
                    "delEditors": []
                },
                "lockInfo": "备注信息",
                "sheetId": "Q7PlXT"
            }
        ]
    }
}
```

### 错误码

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