我可以使用开发者密钥通过Google表格API在没有Oauth的情况下写入Google表格吗?

时间:2018-03-30 20:19:11

标签: php google-sheets oauth-2.0 google-cloud-platform google-sheets-api

我正在开发一款使用Google表格API读取和更新Google电子表格中的值的应用。我能够使用我的开发人员密钥阅读,但尝试写入会返回此错误:

“请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌,登录Cookie或其他有效的身份验证凭据。”

阅读(工作正常):

$client = new Google_Client();
$client->setApplicationName("XXX");
$client->setDeveloperKey("XXX");
$service = new Google_Service_Sheets($client);
$spreadsheetId = "XXX";
$range = 'promocodes';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();

编写代码(错误):

$client = new Google_Client();
$client->setApplicationName("XXX");
$client->setDeveloperKey("XXX");
$service = new Google_Service_Sheets($client);
$spreadsheetId = "XXX";
$range = 'promocodes!C4';
$values = [1];
$body = new Google_Service_Sheets_ValueRange([
  'values' => $values
]);

$params = [
  'valueInputOption' => $valueInputOption
];
$result = $service->spreadsheets_values->update($spreadsheetId, $range,
    $body, $params);
printf("Cells updated.", $result->getUpdatedCells());

1 个答案:

答案 0 :(得分:1)

据我了解,Google API允许您在没有访问令牌的情况下阅读(使用开发人员密钥获取凭据)但是如果没有oauth2身份验证方法(无论是向Google发送凭据还是接收回复),您都无法更新或添加信息来自他们的代码,使用该代码获取访问令牌,然后使用该访问令牌作为您的凭据来添加或更新信息。