gpt4 book ai didi

php - Google 表格 API v4 创建表格并邀请用户

转载 作者:可可西里 更新时间:2023-11-01 13:25:50 25 4
gpt4 key购买 nike

我正在使用服务帐户身份验证通过 Google Sheets API 创建 Google 表格。我想创建一个电子表格并以某种方式允许我的团队打开它。

    $private_key  = file_get_contents($rootDir . '/config/googleApiCredentials.p12');
$client_email = 'project-names@positive-water-134xxx.iam.gserviceaccount.com';
$scopes = implode(' ', ["https://www.googleapis.com/auth/drive"]);

$credentials = new \Google_Auth_AssertionCredentials(
$client_email,
$scopes,
$private_key
);
// tried once with additional constructor params:
// $privateKeyPassword = 'notasecret',
// $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
// $sub = 'myMail@gmail.com

$this->googleClient = new \Google_Client();
$this->googleClient->setAssertionCredentials($credentials);
if ($this->googleClient->getAuth()->isAccessTokenExpired()) {
$this->googleClient->getAuth()->refreshTokenWithAssertion();
}
$service = new \Google_Service_Sheets($this->googleClient);
$newSheet = new \Google_Service_Sheets_Spreadsheet();
$newSheet->setSpreadsheetId('34534534'); // <- hardcoded for test
$response = $service->spreadsheets->create($newSheet);
print_r($response);

正在创建工作表,我收到回复

[spreadsheetId] => 34534534

但是,我无法使用我的 google 帐户通过浏览器打开此文件,即使我在 Google 的开发人员控制台中以项目权限添加为所有者、编辑者、作者和读者时也是如此。浏览器说我未经授权,我可以联系管理员获取权限

有什么建议吗?有没有人设法创建文档并为任何“人”提供访问权限?

最佳答案

服务帐户是虚拟用户。它有自己的驱动器帐户,它拥有在其帐户上创建的文件。该服务帐户需要授予您个人谷歌驱动器帐户访问所述文件的权限。 (与其他用户一样与您分享)

Permissions: insert Inserts a permission for a file.

注意:您目前已通过身份验证,可以使用 Google 表格 API,您必须将 google drive API(范围)添加到您在 Google 开发人员控制台上的代码和项目中。无法通过 google sheets API 更改文件的权限。

是的,您将必须为您希望允许查看/编辑此文件的团队中的每个成员添加权限。

提示:当您添加 google drive API 时,请尝试执行 files.list在结果中查找 downloadUrl、alternateLink 和 embedLink。有时这些已填写,可用于共享仅对其他用户可见。

关于php - Google 表格 API v4 创建表格并邀请用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com