【发布时间】:2013-02-20 21:02:36
【问题描述】:
我正在使用 google-api-php-client 0.6.1,我想知道有没有办法用服务帐户模拟具体用户?我的应用程序需要在其谷歌驱动器中存储一些文件。因此,我决定使用用户服务帐户和 .p12 密钥 - 身份验证。它工作得很好,但所有文件都存储在服务帐户中,所以我无法管理它们。我希望将文档存储在某个帐户(用于创建 api 项目和服务帐户本身)中。我试图使用这段代码:
$KEY_FILE = <p12 key file path>;
$key = file_get_contents($KEY_FILE);
$auth = new Google_AssertionCredentials(
$SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/drive'),
$key);
$auth->prn = '<certainuser@gmail.com>';
$client = new Google_Client();
$client->setUseObjects(true);
$client->setAssertionCredentials($auth);
return new Google_DriveService($client);
但我收到“刷新 OAuth2 令牌时出错,消息:'{ "error" : "access_denied" }'"
【问题讨论】:
-
我遇到了同样的问题,看来我应该对 google 配置本身进行一些更改。你找到解决方案了吗?你能指出我应该改变什么吗?
-
你找到解决办法了吗?
标签: impersonation google-drive-api google-api-php-client