我想使用 Google Drive 作为我正在制作的网站的准 CMS,以便内容所有者可以使用 Google Drive 编辑他们的内容。我想使用可以访问 Google Drive 的特定用户帐户(在撰写本文时,服务帐户不能直接访问 Google Drive)并且能够与内容所有者共享文档。
通读 API 和教程后,我在委托中找到了答案:https ://developers.google.com/drive/delegation
我对这个过程的主要问题是该网站不是由 Google Apps 管理的,因此“将域范围的权限委派给您的服务帐户”中概述的步骤让我感到困惑 - 似乎应该可以在不使用 Google 的情况下处理这个委派应用程序,但在 Google 云端硬盘中搜索我的特定用户帐户的设置后,我似乎找不到授权模拟的能力。
我正在使用的代码片段:
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
是特定的用户帐户,当我运行此代码时,异常状态:
刷新 OAuth2 令牌时出错,消息:'{ "error" : "access_denied" }
有人提供任何帮助吗?我是否误解了 oAuth 在授权方面如何工作的基本概念?