通过Google API创建可链接访问的Google表格教程

通过Google API创建可链接访问的Google表格教程

本教程旨在指导您如何使用Google Sheets API和Google Drive API通过PHP创建Google表格,并使其可以通过链接进行访问。我们将详细介绍如何创建表格、获取其可访问URL,以及如何通过Google Drive API设置权限,使其能够公开共享,从而实现通过链接轻松访问。

1. 概述与准备

在使用google sheets api创建表格时,一个常见的需求是使其能够通过一个链接被访问,甚至公开共享。初次尝试时,开发者可能会发现sheets api本身似乎没有直接提供设置“按链接访问”的选项。实际上,创建表格和管理其访问权限是两个不同的步骤,分别由google sheets api和google drive api负责。google sheets api用于创建和修改表格内容,而google drive api则用于管理文件(包括google表格)的权限和共享设置。

在开始之前,请确保您已经完成了Google API客户端库的安装和认证配置,例如使用OAuth 2.0凭据,并初始化了Google_Client对象。

2. 创建Google表格并获取其ID

首先,我们需要使用Google Sheets API创建一个新的电子表格。在创建过程中,最重要的是获取新创建表格的spreadsheetId,这是后续操作(如生成链接和设置权限)的关键标识。

以下是使用PHP创建Google表格的示例代码:

// 假设 $client 已经通过认证并初始化 // $service = new Google_Service_Sheets($client);  // 实例化 Sheets 服务 $service = new Google_Service_Sheets($client);   // 定义表格标题 $title = "我的新可共享表格";  // 创建一个 Spreadsheet 对象 $spreadsheetProperties = new Google_Service_Sheets_SpreadsheetProperties([     'title' => $title ]);  $spreadsheet = new Google_Service_Sheets_Spreadsheet([     'properties' => $spreadsheetProperties ]);  // 调用 create 方法创建表格,并指定 fields 参数只获取 spreadsheetId,提高效率 $createdSpreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']);  // 获取新创建表格的 ID $spreadsheetId = $createdSpreadsheet->spreadsheetId;  printf("新创建的表格ID: %sn", $spreadsheetId);

注意事项:

  • [‘fields’ =youjiankuohaophpcn ‘spreadsheetId’] 参数是可选的,但强烈建议使用。它告诉API只返回spreadsheetId字段,而不是整个Spreadsheet对象,这可以减少响应大小和提高API调用的效率。
  • $client 对象应在您的应用程序中进行适当的认证和授权。

3. 生成表格的可访问链接

一旦我们有了spreadsheetId,就可以轻松地构造出Google表格的直接访问链接。Google表格的URL结构是固定的:https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit。

// 假设 $spreadsheetId 已经从上一步获取 $url = "https://docs.google.com/spreadsheets/d/" . $spreadsheetId . "/edit"; printf("表格访问链接: %sn", $url);

此时,虽然您已经有了链接,但如果未进行任何权限设置,该链接默认只能被创建者或明确共享给的用户访问。要实现“按链接访问”的公共共享,还需要下一步。

4. 设置公共共享权限(按链接访问)

要使Google表格能够通过上述链接被任何人访问(即“按链接访问”),我们需要使用Google Drive API来修改其权限。Sheets API本身在创建时并不直接提供此功能,而是通过Drive API来管理文件的共享设置。

通过Google API创建可链接访问的Google表格教程

koolio.ai

几分钟内把一个概念变成一个完整的播客

通过Google API创建可链接访问的Google表格教程36

查看详情 通过Google API创建可链接访问的Google表格教程

我们将创建一个新的权限对象,将其类型设置为anyone(任何人),并指定角色为reader(阅读者)或writer(编辑者)。

// 假设 $client 已经通过认证并初始化 // 假设 $spreadsheetId 已经从上一步获取  // 实例化 Drive 服务 $drive = new Google_Service_Drive($client);  // 创建一个新的权限对象 $newPermission = new Google_Service_Drive_Permission();  // 设置权限类型为 'anyone',表示对所有人开放 $newPermission->setType('anyone');  // 设置角色为 'reader'(阅读者),允许任何人查看表格。 // 如果需要允许任何人编辑,可以设置为 'writer'。 $newPermission->setRole('reader');   // 调用 Drive API 的 permissions->create 方法,为指定表格设置权限 $drive->permissions->create($spreadsheetId, $newPermission);  printf("表格 %s 已设置为公共可访问(阅读者权限)。n", $spreadsheetId);

注意事项:

  • 权限角色:
    • reader:允许任何人查看表格内容,但不能修改。
    • writer:允许任何人编辑表格内容。请谨慎使用此权限,因为它会使您的表格对互联网上的任何人开放编辑。
  • 安全性: 将文件设置为anyone可访问意味着任何拥有该链接的人都可以访问它。请确保您了解此设置的安全含义,并仅对适合公开共享的内容使用。
  • 取消共享: 如果您想取消公共共享,可以通过Google Drive界面手动操作,或者使用Drive API的permissions.delete方法来删除相应的权限。

5. 完整示例代码

将上述步骤整合起来,一个完整的PHP脚本示例如下:

<?php  require_once __DIR__ . '/vendor/autoload.php'; // 根据您的Composer配置调整路径  // --- 假设 $client 已经通过认证并初始化 --- // 实际应用中,您需要在此处配置 Google_Client,例如加载凭据文件并设置范围 // $client = new Google_Client(); // $client->setapplicationName('Google Sheets API PHP Quickstart'); // $client->setScopes([ //     Google_Service_Sheets::SPREADSHEETS, //     Google_Service_Drive::DRIVE_FILE // 必须包含 DRIVE_FILE 范围以使用 Drive API 设置权限 // ]); // $client->setAuthConfig('path/to/your/credentials.json'); // 或其他认证方式 // $client->setAccessType('offline'); // $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); // 如果是首次授权 // $client->setAccessToken($accessToken); // --- 假设 $client 已经通过认证并初始化 ---  // 实例化 Sheets 服务 $service = new Google_Service_Sheets($client);   // 1. 创建 Google 表格 $title = "我的新可链接共享表格 - " . date("YmdHis"); // 添加时间戳以确保标题唯一  $spreadsheetProperties = new Google_Service_Sheets_SpreadsheetProperties([     'title' => $title ]);  $spreadsheet = new Google_Service_Sheets_Spreadsheet([     'properties' => $spreadsheetProperties ]);  // 创建表格,并只请求 spreadsheetId $createdSpreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']); $spreadsheetId = $createdSpreadsheet->spreadsheetId;  printf("新创建的表格ID: %sn", $spreadsheetId);  // 2. 生成表格的可访问链接 $url = "https://docs.google.com/spreadsheets/d/" . $spreadsheetId . "/edit"; printf("表格访问链接: %sn", $url);  // 3. 设置公共共享权限 // 实例化 Drive 服务 $drive = new Google_Service_Drive($client);  $newPermission = new Google_Service_Drive_Permission(); $newPermission->setType('anyone'); $newPermission->setRole('reader'); // 设置为阅读者权限  try {     $drive->permissions->create($spreadsheetId, $newPermission);     printf("表格 %s 已成功设置为公共可访问(阅读者权限)。n", $spreadsheetId);     printf("现在任何人都可以通过此链接访问表格: %sn", $url); } catch (GoogleServiceException $e) {     printf("设置权限时发生错误: %sn", $e->getMessage()); }  ?>

总结

通过本教程,我们学习了如何使用Google Sheets API和Google Drive API协同工作,以编程方式创建Google表格并使其通过链接进行公共访问。关键步骤包括:

  1. 使用Google Sheets API创建表格并获取其spreadsheetId。
  2. 利用spreadsheetId构造出表格的直接访问URL。
  3. 通过Google Drive API为该表格添加一个type: ‘anyone’和role: ‘reader’(或writer)的权限,从而实现公共共享。

请记住,在进行公共共享时,务必考虑数据安全和隐私问题,并根据实际需求选择合适的权限级别。

以上就是通过Google API创建可链接访问的Google表格教程的详细内容,更多请关注php js json go composer app access api调用 php脚本 red php delete 对象 https

php js json go composer app access api调用 php脚本 red php delete 对象 https

app
上一篇
下一篇