Google API 数据传输插入(Google 驱动器):说完成了,但实际上什么也没发生

Google API Data Tranfer Insert (Google Drive): Says completed, but nothing actually happens

我在这里找到了一篇类似的文章,但经过大量测试后,我仍然运行遇到问题 ()。

本质上,我正在尝试将 Google 驱动器的所有权转让给另一个人。我得到了这个用于日历的工作(基本上相同的代码,但不同的 applicationId),但是对于驱动器,它说它完成而没有实际移动任何东西。我已验证所有 API 权限都是正确的,我什至能够 运行 在 Google API Explorer (https://developers.google.com/admin-sdk/data-transfer/v1/reference/transfers/insert?authuser=1 ).

我在这里遗漏了一些非常简单的东西吗?

$service = new Google_Service_DataTransfer($client);  // $client is already defined and working properly

$oldUserID = 'oldAccountIdNumberHere';
$newUserID = 'newAccountIdNumberHere';

$driveTransferParams = new Google_Service_DataTransfer_ApplicationTransferParam();
$driveTransferParams->setKey("PRIVACY_LEVEL");
$driveTransferParams->setValue(['SHARED', 'PRIVATE']);

$driveDataTransfer = new Google_Service_DataTransfer_ApplicationDataTransfer();
$driveDataTransfer->setApplicationTransferParams($driveTransferParams);
$driveDataTransfer->applicationId = 'idStringForGoogleDriveAndDocs';

$driveTransfer = new Google_Service_DataTransfer_DataTransfer();
$driveTransfer->setNewOwnerUserId($newUserID);
$driveTransfer->setOldOwnerUserId($oldUserID);
$driveTransfer->setApplicationDataTransfers([$driveDataTransfer]);

$driveResults = $service->transfers->insert($driveTransfer);

我的客户范围是:Google_Service_DataTransfer::ADMIN_DATATRANSFER, Google_Service_DataTransfer::ADMIN_DATATRANSFER_READONLY

提前致谢!

其实,我刚刚想通了。有一些参数需要在数组中传递,在这样做之后,它开始正常工作。下面发布了我的问题的解决方案,以防对其他人有所帮助。

注意 1:请参阅 setApplicationTransferParams 行

注意 2:请参阅 setApplicationId 行

$service = new Google_Service_DataTransfer($client);  // $client is already defined and working properly

$oldUserID = 'oldAccountIdNumberHere';
$newUserID = 'newAccountIdNumberHere';

$driveTransferParams = new Google_Service_DataTransfer_ApplicationTransferParam();
$driveTransferParams->setKey("PRIVACY_LEVEL");
$driveTransferParams->setValue(['SHARED', 'PRIVATE']);

$driveDataTransfer = new Google_Service_DataTransfer_ApplicationDataTransfer();
$driveDataTransfer->setApplicationTransferParams([$driveTransferParams]);
$driveDataTransfer->setApplicationId(['idStringForGoogleDriveAndDocs']);

$driveTransfer = new Google_Service_DataTransfer_DataTransfer();
$driveTransfer->setNewOwnerUserId($newUserID);
$driveTransfer->setOldOwnerUserId($oldUserID);
$driveTransfer->setApplicationDataTransfers([$driveDataTransfer]);

$driveResults = $service->transfers->insert($driveTransfer);