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

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

本文将指导你如何使用 Google Sheets API 和 PHP 创建一个新的 Google Sheet 电子表格,并使其可以通过链接公开访问。我们将涵盖创建电子表格、获取其 URL 以及设置适当的共享权限,以便任何人都可以查看或编辑该电子表格。

创建电子表格

首先,你需要使用 Google Sheets API 创建一个新的电子表格。以下代码片段展示了如何使用 Google_Service_Sheets 类创建电子表格,并设置其标题:

<?php  // 确保你已经正确设置了 Google API 客户端 $service = new Google_Service_Sheets($client);  $title = 'My New Spreadsheet';  $spreadsheet = new Google_Service_Sheets_Spreadsheet([     'properties' => [         'title' => $title,     ] ]);  $spreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']);  // 电子表格的 ID 可以通过 $spreadsheet->spreadsheetId 访问 echo "电子表格ID: " . $spreadsheet->spreadsheetId . "n";  ?>

代码解释:

  • $service = new Google_Service_Sheets($client);: 创建 Google Sheets API 的服务对象。 $client 应该是已经正确配置并授权的 Google API 客户端实例。
  • $spreadsheet = new Google_Service_Sheets_Spreadsheet([…]);: 创建一个新的 Google_Service_Sheets_Spreadsheet 对象,并设置其属性,例如标题。
  • $service-youjiankuohaophpcnspreadsheets->create($spreadsheet, [‘fields’ => ‘spreadsheetId’]);: 使用 spreadsheets->create 方法创建电子表格。 [‘fields’ => ‘spreadsheetId’] 参数告诉 API 只返回电子表格的 ID,这可以提高效率。
  • echo “电子表格ID: ” . $spreadsheet->spreadsheetId . “n”;: 输出新创建的电子表格的ID。

获取电子表格的 URL

创建电子表格后,你需要获取其 URL,以便共享。可以使用以下代码片段生成电子表格的 URL:

立即学习PHP免费学习笔记(深入)”;

<?php  $url = "https://docs.google.com/spreadsheets/d/" . $spreadsheet->spreadsheetId . "/edit"; printf("电子表格 URL: %sn", $url);  ?>

代码解释:

  • $url = “https://docs.google.com/spreadsheets/d/” . $spreadsheet->spreadsheetId . “/edit”;: 使用电子表格的 ID 构建电子表格的 URL。 该 URL 允许用户编辑电子表格。

设置共享权限

默认情况下,新创建的电子表格是私有的。你需要设置共享权限,使其可以通过链接访问。以下代码片段展示了如何将电子表格设置为可链接访问:

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

koolio.ai

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

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

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

<?php  $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);  ?>

代码解释:

  • $drive = new Google_Service_Drive($client);: 创建 Google Drive API 的服务对象。
  • $newPermission = new Google_Service_Drive_Permission();: 创建一个新的权限对象。
  • $newPermission->setType(‘anyone’);: 将权限类型设置为 anyone,这意味着任何拥有链接的人都可以访问。
  • $newPermission->setRole(‘reader’);: 将角色设置为 reader,这意味着拥有链接的人只能查看电子表格。 如果需要允许编辑,可以将角色设置为 writer。
  • $drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);: 使用 permissions->create 方法创建权限。

完整示例

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

<?php  require_once 'vendor/autoload.php'; // 确保你已经安装了 Google API 客户端库  // 设置你的 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'); // 替换为你的 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 {         // 获取授权 URL         $authUrl = $client->createAuthUrl();         printf("请访问以下 URL 并授权应用程序:n%sn", $authUrl);         fwrite(STDOUT, "输入授权码: ");         $authCode = trim(fgets(STDIN));          // 交换授权码以获取访问令牌         $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);         $client->setAccessToken($accessToken);          // 检查是否出现错误         if (array_key_exists('error', $accessToken)) {             throw new Exception(join(', ', $accessToken));         }          // 将凭据保存到磁盘以供下次使用         if (!file_exists(dirname($tokenPath))) {             mkdir(dirname($tokenPath), 0700, true);         }         file_put_contents($tokenPath, json_encode($client->getAccessToken()));     } }  // 创建 Google Sheets 和 Drive 服务对象 $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);  // 设置共享权限 $newPermission = new Google_Service_Drive_Permission(); $newPermission->setType('anyone'); $newPermission->setRole('reader');  // 或者 'writer' 如果你想允许编辑 $drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);  echo "电子表格已成功创建并设置为可链接访问。n";  ?>

注意事项:

  • 确保你已经安装了 Google API 客户端库:composer require google/apiclient:”^2.0″
  • 替换 path/to/your/credentials.json 为你的 credentials.json 文件的实际路径。
  • 你需要创建一个 Google Cloud 项目,启用 Google Sheets API 和 Google Drive API,并下载 credentials.json 文件。 详细步骤请参考 Google API 文档。
  • 首次运行此脚本时,你需要授权应用程序访问你的 Google 帐户。
  • token.json 文件用于存储访问令牌,以便下次运行时可以自动授权。
  • 选择适当的角色(reader 或 writer)以控制对电子表格的访问权限。

总结

通过使用 Google Sheets API 和 Google Drive API,你可以使用 PHP 创建新的 Google Sheet 电子表格,并使其可以通过链接公开访问。 这对于需要与他人共享数据的应用程序非常有用。 请务必注意安全问题,并根据需要设置适当的共享权限。

以上就是使用 Google Sheets API 创建可链接访问的电子表格 (PHP)的详细内容,更多请关注php js json go composer app access red php composer json echo require Token 对象 https

php js json go composer app access red php composer json echo require Token 对象 https

app
上一篇
下一篇