Google Api 创建可由 link SpreadSheet 访问

Google Api create accessible by link SpeadSheet

我使用 here 中的脚本来创建传播 sheet,但它总是创建为封闭传播。我需要创建可由 link 访问的传播 sheet,但我找不到实现它的方法。

我的意思是:

$spreadsheet = new Google_Service_Sheets_Spreadsheet([
            'properties' => [
                'title' => $title,
            ]
        ]);

(取自link我之前提议的) 我创建了新的点差sheet,我认为我需要做类似的事情

$spreadsheet = new Google_Service_Sheets_Spreadsheet([
            'properties' => [
                'title' => $title,
                'access' => 'by_link' //pseudo code
            ]
        ]);

怎么做?

我相信你的目标如下。

  • it always creates as closed one. I need to create spread sheet that accessible by link,您想要检索创建的电子表格的 URL。
  • 在这种情况下,我认为您可能希望公开共享创建的电子表格。
  • 根据您的脚本,您希望通过 PHP 使用 googleapis 来实现您的目标。

在这种情况下,下面的修改脚本怎么样?

修改后的脚本:

$service = new Google_Service_Sheets($client); // Please use your script here.

$spreadsheet = new Google_Service_Sheets_Spreadsheet([
    'properties' => [
        'title' => $title,
    ]
]);
$spreadsheet = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']);

// Here, you can see the URL of the created Spreadsheet.
$url = "https://docs.google.com/spreadsheets/d/" . $spreadsheet->spreadsheetId . "/edit";
printf("URL: %s\n", $url);

// Below script publicly shares the created Spreadsheet.
$drive = new Google_Service_Drive($client);
$newPermission = new Google_Service_Drive_Permission();
$newPermission->setType('anyone');
$newPermission->setRole('reader');  // or writer
$drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);
  • 如果您不想公开分享创建的电子表格,请删除下面$drive = new Google_Service_Drive($client);下面的脚本。

参考文献: