亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改上傳工作表的權限

更改上傳工作表的權限

PHP
牧羊人nacy 2023-09-08 10:20:02
我遇到了一個問題,我有一張已使用 Sheets PHP API 上傳的工作表,現在我需要更改該工作表的權限。權限是在上傳時設置還是稍后更改對我來說并不重要。這是我的上傳代碼的樣子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 中包含任何設置時,例如:        'properties' => [            'title' => "test_sheet3",            'type' => 'group'        ]    ]);我收到錯誤"Invalid JSON payload received. Unknown name \"type\" at 'spreadsheet.properties': Cannot find field."所以我不完全確定我的語法是否不正確,或者它們應該添加到不是屬性 JSON 的不同 JSON 附件中。
查看完整描述

1 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

我想提出以下修改建議。


修改要點:

您可以使用Drive API中“權限:創建”的方法授予權限。這一點在你的問題中已經提到過。在這種情況下,請求參數不能包含在Sheets API的“spreadsheets.create”方法中。請使用Drive API中的“權限:創建”方法請求。

當以上幾點反映到您的腳本中時,它會變成如下所示。


修改后的腳本:

$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. 為此,請使用以下腳本。當您修改范圍時,請包含刷新令牌的文件并重新授權范圍。這樣,修改的范圍就可以反映到訪問令牌中。請小心這一點。


  $client->setScopes(array(Google_Service_Sheets::SPREADSHEETS, Google_Service_Drive::DRIVE));

當您想使用時group,type請設置電子郵件地址。


如果您想授予用戶權限,請修改$newPermission->setType('group');為$newPermission->setType('user');并請使用電子郵件地址。


查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號