返回文件夹 ID 但不创建文件夹
Returning folder ID but not creating folder
使用下面的代码
define('DRIVE_SCOPE', 'https://www.googleapis.com/auth/drive');
define('SERVICE_ACCOUNT_EMAIL', 'xxx.iam.gserviceaccount.com');
define('SERVICE_ACCOUNT_PKCS12_FILE_PATH', 'xxx');
function buildService($userEmail) {
$key = file_get_contents(SERVICE_ACCOUNT_PKCS12_FILE_PATH);
$auth = new Google_Auth_AssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
array(DRIVE_SCOPE),
$key);
//$auth->sub = $userEmail;
$client = new Google_Client();
$client->setAssertionCredentials($auth);
return new Google_Service_Drive($client);
}
$service = buildService('xxx.apps.googleusercontent.com');
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => 'Invoices',
'mimeType' => 'application/vnd.google-apps.folder'
));
$file = $service->files->create($fileMetadata, array(
'fields' => 'id'
));
printf("Folder ID: %s\n", $file->id);
我一直在尝试通过 PHP 在我的驱动器帐户上创建一个文件夹。我相信一切都已正确配置并且我得到了结果
Folder ID: 0B2nllBpB_k0NQWFNUjlSc0NUdE0
但是我的驱动器帐户上没有创建文件夹。创建文件也是如此。它不断返回一个 ID,但实际上没有创建任何内容。我到底做错了什么?
您当前的代码正在验证服务帐户并创建文件。生成的文件将只能由服务帐户访问,而不是您的 Google 用户。您可以通过在代码中执行文件列表而不是创建来确认这一点,您将取回之前创建的文件。
您的代码已将 sub= 注释掉。取消注释该行并确保您已遵循 the domain-wide delegation instructions 以便您的代码可以验证并充当您的 Google 用户。
使用下面的代码
define('DRIVE_SCOPE', 'https://www.googleapis.com/auth/drive');
define('SERVICE_ACCOUNT_EMAIL', 'xxx.iam.gserviceaccount.com');
define('SERVICE_ACCOUNT_PKCS12_FILE_PATH', 'xxx');
function buildService($userEmail) {
$key = file_get_contents(SERVICE_ACCOUNT_PKCS12_FILE_PATH);
$auth = new Google_Auth_AssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
array(DRIVE_SCOPE),
$key);
//$auth->sub = $userEmail;
$client = new Google_Client();
$client->setAssertionCredentials($auth);
return new Google_Service_Drive($client);
}
$service = buildService('xxx.apps.googleusercontent.com');
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => 'Invoices',
'mimeType' => 'application/vnd.google-apps.folder'
));
$file = $service->files->create($fileMetadata, array(
'fields' => 'id'
));
printf("Folder ID: %s\n", $file->id);
我一直在尝试通过 PHP 在我的驱动器帐户上创建一个文件夹。我相信一切都已正确配置并且我得到了结果
Folder ID: 0B2nllBpB_k0NQWFNUjlSc0NUdE0
但是我的驱动器帐户上没有创建文件夹。创建文件也是如此。它不断返回一个 ID,但实际上没有创建任何内容。我到底做错了什么?
您当前的代码正在验证服务帐户并创建文件。生成的文件将只能由服务帐户访问,而不是您的 Google 用户。您可以通过在代码中执行文件列表而不是创建来确认这一点,您将取回之前创建的文件。
您的代码已将 sub= 注释掉。取消注释该行并确保您已遵循 the domain-wide delegation instructions 以便您的代码可以验证并充当您的 Google 用户。