Google云端硬盘访问服务帐户

时间:2014-04-30 07:40:24

标签: php google-drive-api

我正在尝试从将在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

2 个答案:

答案 0 :(得分:4)

谷歌将把自己的谷歌硬盘装入服务帐户。

您需要做的是使用来自控制台的服务帐户电子邮件分享您的文件夹

授予权限“可以编辑”。

答案 1 :(得分:-1)

我在GUI可访问的驱动器中创建了一个共享文件夹,然后我将命令行中的文件插入共享的此文件夹下,所以我看到了它们;)