我正在学习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);
?>
我的结果是一个名为“如何开始使用云端硬盘”的文件。很明显,它不是通过我的帐户进行身份验证来显示我的驱动器文件。
知道如何将此服务帐户与我的云端硬盘帐户相关联,以便获取文件列表吗?
答案 0 :(得分:1)
正如您所发现的,您正在列出服务帐户的云端硬盘中的文件。服务帐户可以被视为具有自己的云端硬盘的用户,并且不会与您的用户帐户绑定。
如果要访问其他用户的文件,则必须执行以下操作之一: