我正在尝试从将在cron作业中运行的php脚本访问我的Google云端硬盘文件,但我无法看到我的文件。 我正在使用在Google Developpers控制台中设置的服务帐户,该帐户不需要与用户(我)进行授权交互。 这是我的代码:
require_once 'Google/Client.php';
require_once 'Google/Service/Drive.php';
$client_id = '260186860844-kg9uiqe7pjms3s54gabqfnph0iamjdjn.apps.googleusercontent.com';
$service_account_name = '260186860844-kg9uiqe7pjms3s54gabqfnph0iamjdjn@developer.gserviceaccount.com';
$key_file_location = 'privatekey.p12';
$client = new Google_Client();
$client->setApplicationName("Whatever");
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'),
$key
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
$service = new Google_Service_Drive($client);
$parameters = array(
// 'maxResults' => 10,
);
$dr_results = $service->files->listFiles($parameters);
foreach ($dr_results as $item) {
echo $item->title, "<br /> \n";
}
似乎我已正确连接(获得令牌,没有提示错误),但我只列出了一个单独的文件,这不是我的驱动器的一部分,而且名为&#34;如何开始使用Drive&# 34;!
我正在使用最新的Google APIs Client Library for PHP,使用php 5.4
答案 0 :(得分:4)
您需要做的是使用来自控制台的服务帐户电子邮件分享您的文件夹。
授予权限“可以编辑”。
答案 1 :(得分:-1)
我在GUI可访问的驱动器中创建了一个共享文件夹,然后我将命令行中的文件插入共享的此文件夹下,所以我看到了它们;)