gpt4 book ai didi

php - 如何在不使用谷歌应用程序的情况下授权谷歌云端硬盘服务帐户访问谷歌帐户?

转载 作者:可可西里 更新时间:2023-11-01 12:55:47 24 4
gpt4 key购买 nike

我想使用 Google 云端硬盘作为我正在制作的网站的准 CMS,以便内容所有者可以使用 Google 云端硬盘编辑他们的内容。我想使用可以访问 Google Drive 的特定用户帐户(在撰写本文时,服务帐户无法直接访问 Google Drive)并且能够与内容所有者共享文档。

看完API和教程后,我在委托(delegate)中找到了答案:https://developers.google.com/drive/delegation

我对这个过程的主要问题是该网站不是由 Google Apps 管理的,因此“将域范围的权限委托(delegate)给您的服务帐户”中概述的步骤让我感到困惑 - 似乎应该可以处理这个委托(delegate)没有使用 Google Apps,但在 Google Drive 中搜索我的特定用户帐户的设置后,我似乎无法找到授权模拟的功能。

我正在使用的代码片段:

static public function getService() {
$key = file_get_contents(GOOGLEAPI_KEYFILE);
$auth = new Google_AssertionCredentials(GOOGLEAPI_SERVICE_EMAIL, array(GOOGLEAPI_SCOPE), $key);
$auth->setPrn(GOOGLEAPI_IMPERSONATION);
self::$apiClient = new Google_Client();
self::$apiClient->setUseObjects(true);
self::$apiClient->setAssertionCredentials($auth);
return new Google_DriveService(self::$apiClient);
}

GOOGLEAPI_IMPERSONATION 是特定的用户帐户,当我运行此代码时,异常状态为:

Error refreshing the OAuth2 token, message: '{ "error" : "access_denied" }

有人提供任何帮助吗?我是否误解了 oAuth 在委托(delegate)方面如何工作的基本概念?

最佳答案

服务帐户适用于两种不同的情况:

  • 授权应用程序/进程使用自己的身份验证和调用服务。想想预测、云存储等服务,其中数据归应用所有。
  • 冒充 google apps 域中的用户,域管理员可以预先授权该应用代表其域中的用户执行操作。

模拟适用于 Google Apps 域,因为管理员有一种机制可以通过控制面板为其用户在带外授权应用程序。当然,他们只能授权应用程序访问他们管理的帐户的数据。对于不属于组织的个人用户,应用程序需要使用正常的 OAuth 流程来请求每个用户的授权。

我已经有一段时间没有测试过了,但最后我检查了是否可以将 Drive 与充当其自身的服务帐户一起使用。我遇到的唯一限制是无法购买额外的配额,而且该应用仅限于最初的 5GB 免费存储空间。

关于php - 如何在不使用谷歌应用程序的情况下授权谷歌云端硬盘服务帐户访问谷歌帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187030/

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