You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP调用Google API禁止编辑者分享Google文档

PHP 调用 Google Drive API 实现仅所有者可分享文档配置

核心逻辑:通过 Google Drive API v3 的文件更新接口,将文件的writersCanShare属性设置为false,即可禁止所有编辑者、写作者调整文档分享权限、新增协作者,仅文件所有者拥有完整分享管理权限。该配置效果与 Apps Script 中setShareableByEditors(false)完全一致,无需额外调用 Google Docs API。

前置依赖

  • 已在 Google Cloud 控制台启用 Google Drive API,完成 OAuth 2.0 或服务账号凭据配置
  • 通过 Composer 安装 Google 官方 PHP 客户端:
    composer require google/apiclient:^2.0
  • 用于调用 API 的账号必须持有目标文件的所有者权限,否则无法修改该配置项

可直接运行的实现代码

<?php
require __DIR__ . '/vendor/autoload.php';

// 初始化API客户端
$client = new Google\Client();
$client->setApplicationName('Drive Share Permission Config');
$client->setScopes([Google\Service\Drive::DRIVE]);
// 替换为你本地的凭据文件路径,OAuth授权流程请按官方授权逻辑补充access_token获取代码
$client->setAuthConfig('/path/to/your/google_api_credential.json');
$client->setAccessType('offline');

// 实例化Drive服务
$driveService = new Google\Service\Drive($client);

// 替换为需要配置的目标Google文档/表格/幻灯片的文件ID
$targetFileId = 'REPLACE_WITH_YOUR_FILE_ID';

// 构造更新参数,核心配置项:禁止写作者/编辑者分享
$fileUpdateMeta = new Google\Service\Drive\DriveFile([
    'writersCanShare' => false
]);

// 发起更新请求
$updatedFile = $driveService->files->update(
    $targetFileId,
    $fileUpdateMeta,
    [
        'fields' => 'id,name,writersCanShare' // 指定返回字段用于校验配置结果
    ]
);

// 配置结果校验
if ($updatedFile->getWritersCanShare() === false) {
    echo "配置生效:仅文件所有者可调整分享权限,编辑/评论/查看角色均无分享权限";
} else {
    echo "配置未生效,请检查操作账号是否为文件所有者、API权限范围是否正确";
}

注意事项

  • 该配置对所有存储在Google Drive中的文件类型生效,包括Docs、Sheets、Slides、普通上传文件等,无需单独对接Google Docs API
  • 若目标文件存放在共享盘内,该配置可能被共享盘管理员的全局分享规则覆盖,需先确认共享盘权限设置允许自定义单文件分享权限
  • 批量配置多份文档时,循环替换$targetFileId调用更新接口即可,注意控制请求频率避免触发API限流
  • 若需要恢复编辑者的分享权限,只需将writersCanShare参数设为true重新调用更新接口即可

内容的提问来源于stack exchange,提问作者Taniya Halder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 03:51:23