1 回答
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
我想提出以下修改建議。
修改要點(diǎn):
您可以使用Drive API中“權(quán)限:創(chuàng)建”的方法授予權(quán)限。這一點(diǎn)在你的問題中已經(jīng)提到過。在這種情況下,請求參數(shù)不能包含在Sheets API的“spreadsheets.create”方法中。請使用Drive API中的“權(quán)限:創(chuàng)建”方法請求。
當(dāng)以上幾點(diǎn)反映到您的腳本中時(shí),它會變成如下所示。
修改后的腳本:
$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);
// I added below script
$drive = new Google_Service_Drive($client);
$newPermission = new Google_Service_Drive_Permission();
$newPermission->setEmailAddress('###@gmail.com');
$newPermission->setType('group');
$newPermission->setRole('writer');
$res = $drive->permissions->create($spreadsheet->spreadsheetId, $newPermission);
// print_r($res);
return $spreadsheet->spreadsheetID;
筆記:
在本例中,作為測試,我使用了https://www.googleapis.com/auth/drive. 為此,請使用以下腳本。當(dāng)您修改范圍時(shí),請包含刷新令牌的文件并重新授權(quán)范圍。這樣,修改的范圍就可以反映到訪問令牌中。請小心這一點(diǎn)。
$client->setScopes(array(Google_Service_Sheets::SPREADSHEETS, Google_Service_Drive::DRIVE));
當(dāng)您想使用時(shí)group,type請?jiān)O(shè)置電子郵件地址。
如果您想授予用戶權(quán)限,請修改$newPermission->setType('group');為$newPermission->setType('user');并請使用電子郵件地址。
- 1 回答
- 0 關(guān)注
- 170 瀏覽
添加回答
舉報(bào)
