返回文件夹 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 用户。