[英]Google Drive API won't access user data
我正在学习Drive API,到目前为止已经阅读了所有这些文档。 我只是想进行一次身份验证的呼叫,以列出驱动器中的文件。
这是用于不需要用户身份验证的内部应用程序,我只需要访问我们公司的驱动器即可。 因此,“服务帐户”听起来像是对的。
到目前为止,这是我所做的
这是我列出文件的代码
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
require_once 'google-api-php-client/autoload.php';
$client_id = '...'; //Client ID
$service_account_name = '...'; //Email Address
$key_file_location = '...'; //key.p12
$client = new Google_Client();
$client->setApplicationName("...");
$service = new Google_Service_Drive($client);
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/drive.file'),
$key
);
$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
$results = $service->files->listFiles();
debug($results);
?>
我的结果是一个名为“如何开始使用云端硬盘”的文件。 因此很明显,它没有通过我的帐户进行身份验证才能显示我的驱动器文件。
任何想法如何使该服务帐户与我的驱动器帐户相关联,以便我可以获得文件列表?
如您所知,您正在服务帐户的驱动器中列出文件。 服务帐户可以被视为拥有自己的云端硬盘的用户,并且与您的用户帐户无关。
如果要访问其他用户的文件,则必须执行以下操作之一:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.