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

如何通过Google Sheets PHP API创建可通过链接访问的电子表格

实现方法

Google Sheets API 的创建接口本身不支持直接在properties中配置访问权限,权限管理属于 Google Drive API 的能力范围,你需要在创建表格完成后,额外调用 Drive API 的权限接口设置公开访问规则,操作步骤如下:

前置准备

  • 确保你的 Google Cloud 项目中已经启用了 Google Drive API
  • 你的授权账号需要添加 Drive 相关权限范围,推荐添加https://www.googleapis.com/auth/drive

完整代码示例

// 初始化 Sheets 服务和 Drive 服务($client 为你已经完成授权配置的 Google_Client 实例)
$serviceSheets = new Google_Service_Sheets($client);
$serviceDrive = new Google_Service_Drive($client);

// 原有创建表格逻辑
$spreadsheet = new Google_Service_Sheets_Spreadsheet([
    'properties' => [
        'title' => $title,
    ]
]);
$spreadsheet = $serviceSheets->spreadsheets->create($spreadsheet);
$spreadsheetId = $spreadsheet->spreadsheetId;

// 新增:设置公开访问权限
$permission = new Google_Service_Drive_Permission();
// type设为anyone代表所有人可访问,role设为reader代表仅可读,需要编辑权限可改为writer,评论权限改为commenter
$permission->setType('anyone');
$permission->setRole('reader');
// 执行权限设置
$serviceDrive->permissions->create($spreadsheetId, $permission);

// 生成的公开访问链接格式如下
$publicUrl = "https://docs.google.com/spreadsheets/d/{$spreadsheetId}/edit";

补充说明

如果是使用服务账号创建的表格,默认所有者为服务账号,如果你需要个人谷歌账号也拥有表格的管理权限,可以额外添加一条权限规则:

$userPermission = new Google_Service_Drive_Permission();
$userPermission->setType('user');
$userPermission->setRole('owner');
$userPermission->setEmailAddress('你的个人谷歌邮箱地址');
$serviceDrive->permissions->create($spreadsheetId, $userPermission, ['sendNotificationEmail' => false, 'transferOwnership' => true]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:24:03