我有一个Google工作表,我按照PHP快速入门(https://developers.google.com/sheets/api/quickstart/php)的步骤编写PHP脚本以读取/编写Google工作表。我不知道如何管理读/写权限。
这是PHP脚本的代码
$client = new Google_Client();
$client->setApplicationName('SurveyApp');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
$client->setAuthConfig('credentials.json');
$client->setAccessType('offline');
$client->setPrompt('select_account consent');
$spreadsheetId = '<my sheet id>';
$options = array('valueInputOption' => 'RAW');
$updateRange = "FormRange!F1:F3";
$requestBody = new Google_Service_Sheets_ValueRange();
$requestBody->setValues([["Blue"],["Green"],["Red"]]);
$response = $service->spreadsheets_values->update($spreadsheetId, $updateRange, $requestBody, $options);
我有3个Google帐户,例如GooA,GooB和GooC。有一个Google表格,用户GooA是该表格的所有者。
我故意不与拥有读/写访问权限的任何人共享工作表。我尝试从服务器中删除token.json并使用帐户GooB登录名对其进行重建,然后粘贴验证码。
当所有用户(包括所有者GooA)执行PHP脚本时,都会出现错误500。我将工作表共享给具有可以编辑权限的用户GooC,在我将工作表共享给具有可以编辑权限的GooB之前,错误500仍然存在。我阅读了日志,发现Error 500与权限问题有关。
一旦我将表单共享给具有可以编辑权限的生成验证码的用户GooB,包括匿名用户在内的所有用户(无需使用Google帐户登录)都可以执行PHP脚本而不会出现错误。
在PHP脚本中,它具有向工作表写入/获取值的代码,如何授予特定用户执行脚本的权限?
最诚挚的问候,
开尔文。
答案 0 :(得分:0)
您可以从本文档中了解如何Authorize Requests。当您的应用程序请求私人数据时,该请求必须由有权访问该数据的经过身份验证的用户授权。
有两种方法可以识别您的应用程序:
这也是设置用户权限类型的另一种方法,请检查此SO post以获取更多详细信息。