我正在尝试创建一个使用PHP启用公共访问的Google表格。目前,我正在为新插入的代码生成Google工作表。用户可以下载Google工作表。
但是现在我想给默认权限公开,以通过代码动态创建Google表格。在Google工作表中可以吗?
这里是代码
// Creating new spreadsheet
$spreadsheet = new Google_Service_Sheets_Spreadsheet([
'properties' => [
'title' => "$sheet_name"
]
]);
$spreadsheet = $service->spreadsheets->create($spreadsheet, [
'fields' => 'spreadsheetId'
]);
$sheet_id = $spreadsheet->spreadsheetId;
//End Creating new spreadsheet
如果您打算使用API密钥来更改工作表。答案是你不能。
您需要通过Oauth2或服务帐户进行身份验证访问。使用以下范围之一使用API进行任何更改。
[公开工作表仅表示任何人都可以下载并查看它,并且很可能可以通过“工作表”网络应用程序进行更改。使用API进行更改需要访问权限。
您可以创建工作表,然后使用Google Drive API来更新工作表上的permissions以将其公开,但是那也无法使您对其进行写操作。
sheet_id
,请使用permissions->insert()
创建权限>reader
,writer
,...]anyone
示例如何在php中实现它:
$newPermission= new Google_Service_Drive_Permission();
$newPermission->setType('anyone');
$newPermission->setRole('reader');
$service->permissions->insert($sheet_id,$newPermission);