gpt4 book ai didi

php - 服务帐户的 Google 云端硬盘访问权限

转载 作者:行者123 更新时间:2023-12-02 21:27:04 25 4
gpt4 key购买 nike

我正在尝试从将在 cron 作业中运行的 php 脚本访问我的 Google Drive 文件,但我看不到我的文件。我正在使用在 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";
}

我似乎已正确连接(获得 token ,没有错误提示),但我只列出了一个文件,它不是我的云端硬盘的一部分,名为“如何开始使用云端硬盘”!

我正在使用最新的 Google APIs Client Library for PHP , 使用 PHP 5.4

最佳答案

Google 将为服务帐户创建自己的 google drive。

您需要做的是从控制台与服务帐户电子邮件共享您的文件夹

授予它“可以编辑”的权限。

关于php - 服务帐户的 Google 云端硬盘访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com