Php 更改已上载图纸的权限
我遇到了一个问题,我有一个使用Sheets PHP API上传的工作表,现在我需要更改该工作表的权限。权限是在上传时设置的,还是以后更改的,对我来说并不重要。下面是我的上传代码Php 更改已上载图纸的权限,php,google-drive-api,google-sheets-api,Php,Google Drive Api,Google Sheets Api,我遇到了一个问题,我有一个使用Sheets PHP API上传的工作表,现在我需要更改该工作表的权限。权限是在上传时设置的,还是以后更改的,对我来说并不重要。下面是我的上传代码 function createSheet(){ $client = getClient(); $service = new Google_Service_Sheets($client); $spreadsheet = new Google_Service_Sheets_Spreadsheet([
function createSheet(){
$client = getClient();
$service = new Google_Service_Sheets($client);
$spreadsheet = new Google_Service_Sheets_Spreadsheet([
'properties' => [
'title' => "test_sheet3",
]
]);
$spreadsheet = $service->spreadsheets->create($spreadsheet, [
'fields' => 'spreadsheetId'
]);
printf("Spreadsheet ID: %s\n", $spreadsheet->spreadsheetId);
return $spreadsheet->spreadsheetID;
}
我一直在探讨这个问题,但每次我尝试在属性JSON ex中包含任何设置时:
'properties' => [
'title' => "test_sheet3",
'type' => 'group'
]
]);
我得到了错误
"Invalid JSON payload received. Unknown name \"type\" at 'spreadsheet.properties': Cannot find field."
因此,我不能完全确定我的语法是否不正确,或者是否应该将它们添加到不同的JSON附件中,而该附件不是JSON属性。我建议进行以下修改 修改点:
- 您可以使用驱动器API中的“权限:创建”方法授予权限。你的问题中已经提到了这一点。在这种情况下,请求参数不能包含在Sheets API中的“spreadsheets.create”方法中。请使用驱动器API中的“权限:创建”方法进行请求
- 在本例中,作为测试,我使用了
。为此,请使用以下脚本。当您修改作用域时,请删除包含刷新令牌的文件并重新授权作用域。这样,修改后的作用域可以反映到访问令牌。请小心这个https://www.googleapis.com/auth/drive
$client->setScopes(array(Google_Service_Sheets::SPREADSHEETS, Google_Service_Drive::DRIVE));
- 当您想使用
到组
时,请设置电子邮件地址类型
- 如果要将权限授予用户,请修改
$newPermission->setType('group')代码>到
$newPermission->setType('user')代码>并请使用电子邮件地址
- 您可以使用驱动器API中的“权限:创建”方法授予权限。你的问题中已经提到了这一点。在这种情况下,请求参数不能包含在Sheets API中的“spreadsheets.create”方法中。请使用驱动器API中的“权限:创建”方法进行请求
- 在本例中,作为测试,我使用了
。为此,请使用以下脚本。当您修改作用域时,请删除包含刷新令牌的文件并重新授权作用域。这样,修改后的作用域可以反映到访问令牌。请小心这个https://www.googleapis.com/auth/drive
$client->setScopes(array(Google_Service_Sheets::SPREADSHEETS, Google_Service_Drive::DRIVE));
- 当您想使用
到组
时,请设置电子邮件地址类型
- 如果要将权限授予用户,请修改
$newPermission->setType('group')代码>到
$newPermission->setType('user')代码>并请使用电子邮件地址
- 我想提出以下修改
修改点: