使用 Google Sheets API 创建可链接访问的电子表格

使用 Google Sheets API 创建可链接访问的电子表格

本文档旨在指导开发者如何使用 Google Sheets API 和 PHP 创建一个可以通过链接访问的电子表格。我们将重点介绍如何使用 API 创建电子表格,获取其 URL,并设置权限,使其可以被拥有链接的任何人访问。通过本文,您将能够轻松地自动化电子表格的创建和共享过程。

创建电子表格并获取 URL

首先,我们需要使用 Google Sheets API 创建一个新的电子表格。以下代码展示了如何使用 PHP 完成此操作:

<?php  // 确保您已经正确设置了 Google API 客户端 // 并获得了授权。  // 创建一个新的电子表格 $spreadsheet = new Google_Service_Sheets_Spreadsheet([     'properties' => [         'title' => $title,     ] ]);  // 使用 Sheets API 创建电子表格 $spreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']);  // 构造电子表格的 URL $url = "https://docs.google.com/spreadsheets/d/" . $spreadsheet->spreadsheetId . "/edit"; printf("URL: %sn", $url);  ?>

代码解释:

使用 Google Sheets API 创建可链接访问的电子表格

koolio.ai

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

使用 Google Sheets API 创建可链接访问的电子表格36

查看详情 使用 Google Sheets API 创建可链接访问的电子表格

  1. Google_Service_Sheets_Spreadsheet 类用于定义电子表格的属性,例如标题。
  2. $service-youjiankuohaophpcnspreadsheets->create() 方法用于实际创建电子表格。[‘fields’ => ‘spreadsheetId’] 参数指定我们只希望 API 返回电子表格的 ID,以提高效率。
  3. 通过拼接电子表格 ID,我们可以构造出可以直接访问电子表格的 URL。

设置电子表格的访问权限

仅仅创建电子表格是不够的,我们还需要设置其访问权限,使其可以通过链接访问。以下代码展示了如何使用 Google Drive API 设置权限:

<?php  // 确保您已经正确设置了 Google API 客户端 // 并获得了 Drive API 的授权。  // 使用 Drive API 设置权限 $drive = new Google_Service_Drive($client); $newPermission = new Google_Service_Drive_Permission(); $newPermission->setType('anyone'); $newPermission->setRole('reader');  // 可以设置为 'writer' 如果需要编辑权限 $drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);  ?>

代码解释:

使用 Google Sheets API 创建可链接访问的电子表格

koolio.ai

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

使用 Google Sheets API 创建可链接访问的电子表格36

查看详情 使用 Google Sheets API 创建可链接访问的电子表格

  1. Google_Service_Drive 类用于与 Google Drive API 交互。
  2. Google_Service_Drive_Permission 类用于定义新的权限。
  3. setType(‘anyone’) 表示任何拥有链接的人都可以访问。
  4. setRole(‘reader’) 表示拥有链接的人只能阅读电子表格。如果需要允许编辑,可以将 role 设置为 ‘writer’。
  5. $drive->permissions->create() 方法用于实际创建权限。

注意事项:

  • 请确保您已经正确配置了 Google API 客户端,并且获得了 Sheets API 和 Drive API 的授权。
  • setRole() 方法的取值需要谨慎选择,’reader’ 表示只读权限,’writer’ 表示编辑权限。根据您的需求选择合适的权限级别。
  • 如果不需要公开分享电子表格,请移除设置权限的代码。

完整示例

下面是一个完整的示例,展示了如何创建可链接访问的电子表格:

<?php  require_once 'vendor/autoload.php'; // 引入 Composer 自动加载器  // 配置 Google API 客户端 (请替换为您的凭据) $client = new Google_Client(); $client->setapplicationName('Google Sheets API PHP Quickstart'); $client->setScopes(Google_Service_Sheets::SPREADSHEETS, Google_Service_Drive::DRIVE); $client->setAuthConfig('path/to/your/credentials.json'); // 替换为您的凭据文件路径 $client->setAccessType('offline'); $client->setPrompt('consent');  // 获取授权令牌 $tokenPath = 'token.json'; if (file_exists($tokenPath)) {     $accessToken = json_decode(file_get_contents($tokenPath), true);     $client->setAccessToken($accessToken); }  if ($client->isAccessTokenExpired()) {     if ($client->getRefreshToken()) {         $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());     } else {         // Request authorization from the user.         $authUrl = $client->createAuthUrl();         printf("Open the following link in your browser:n%sn", $authUrl);         print 'Enter verification code: ';         $authCode = trim(fgets(STDIN));          // Exchange authorization code for an access token.         $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);         $client->setAccessToken($accessToken);          // Check to see if there was an error.         if (array_key_exists('error', $accessToken)) {             throw new Exception(join(', ', $accessToken));         }     }     // Save the token to a file.     if (!file_exists(dirname($tokenPath))) {         mkdir(dirname($tokenPath), 0700, true);     }     file_put_contents($tokenPath, json_encode($client->getAccessToken())); }   $service = new Google_Service_Sheets($client); $drive = new Google_Service_Drive($client);  $title = 'My New Spreadsheet';  // 创建一个新的电子表格 $spreadsheet = new Google_Service_Sheets_Spreadsheet([     'properties' => [         'title' => $title,     ] ]);  $spreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']);  // 构造电子表格的 URL $url = "https://docs.google.com/spreadsheets/d/" . $spreadsheet->spreadsheetId . "/edit"; printf("URL: %sn", $url);  // 使用 Drive API 设置权限 $newPermission = new Google_Service_Drive_Permission(); $newPermission->setType('anyone'); $newPermission->setRole('reader');  // 可以设置为 'writer' 如果需要编辑权限 $drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);  echo "Spreadsheet shared publicly with read access.n";  ?>

总结:

通过结合 Google Sheets API 和 Drive API,我们可以轻松地使用 PHP 创建可链接访问的电子表格。 请务必正确配置 API 客户端,并根据您的需求选择合适的权限级别。 此教程提供了一个基础框架,您可以根据实际需求进行扩展,例如添加数据、格式化电子表格等。

以上就是使用 Google Sheets API 创建可链接访问的电子表格的详细内容,更多请关注php js json go composer app access win red php 自动化

php js json go composer app access win red php 自动化

app
上一篇
下一篇