Google API 数据传输插入:缺少 resource.applicationDataTransfer
Google API Data Transfer Insert: missing resource.applicationDataTransfer
我正在创建简单的 PHP 脚本,用于在同一域中的用户之间转移驱动器文件的所有权。我想使用 Admin SDK Transfers 和 Insert 方法。
Google 有关于传输的文档 here
我尝试通过他们的网页 GUI 传输数据,一切顺利。我不能做的是如何让它与 PHP 客户端库一起工作。
假设我已经准备好创建对 Transfers 资源的请求的对象
$transfers = new \Google_Service_DataTransfer($googleConnection);
googleConnection 处理服务帐户授权,因此我可以发出这样的请求:
$data = $this->transfers->transfers->listTransfers();
此 returns 域中所有现有传输的数据。根据文档和 PHP 客户端库插入操作也应该有效。
$transferParams = new \Google_Service_DataTransfer_ApplicationTransferParam();
$transferParams->setKey("PRIVACY_LEVEL"); //what kind of docs I want to transfer
$transferParams->setValue(['SHARED', 'PRIVATE']);
$appDataTransfer = new \Google_Service_DataTransfer_ApplicationDataTransfer();
$appDataTransfer->setApplicationTransferParams($transferParams);
$appDataTransfer->applicationId = "iDString"; //set application ID
$newTransfer = New \Google_Service_DataTransfer_DataTransfer();
$newTransfer->setOldOwnerUserId('accountID'); //origin account IDs are placeholders
$newTransfer->setNewOwnerUserId('account2ID'); //destination account
$newTransfer->setApplicationDataTransfers($appDataTransfer);
$result = $this->transfers->transfers->insert($newTransfer); //execute insert
执行插入后,我收到代码 400,消息中缺少必填字段:[resource.applicationDataTransfer]。
如果我通过网络测试真实参数,它们就可以工作。
我一定是遗漏了什么,因为那个例外根本没有意义。
我也愿意接受其他解决方案。
setApplicationDataTransfers
方法需要一个 Google_Service_DataTransfer_DataTransfer
数组,因此您只需要更新以下行(注意参数中的 [])
$newTransfer->setApplicationDataTransfers([$appDataTransfer]);
我正在创建简单的 PHP 脚本,用于在同一域中的用户之间转移驱动器文件的所有权。我想使用 Admin SDK Transfers 和 Insert 方法。
Google 有关于传输的文档 here
我尝试通过他们的网页 GUI 传输数据,一切顺利。我不能做的是如何让它与 PHP 客户端库一起工作。
假设我已经准备好创建对 Transfers 资源的请求的对象
$transfers = new \Google_Service_DataTransfer($googleConnection);
googleConnection 处理服务帐户授权,因此我可以发出这样的请求:
$data = $this->transfers->transfers->listTransfers();
此 returns 域中所有现有传输的数据。根据文档和 PHP 客户端库插入操作也应该有效。
$transferParams = new \Google_Service_DataTransfer_ApplicationTransferParam();
$transferParams->setKey("PRIVACY_LEVEL"); //what kind of docs I want to transfer
$transferParams->setValue(['SHARED', 'PRIVATE']);
$appDataTransfer = new \Google_Service_DataTransfer_ApplicationDataTransfer();
$appDataTransfer->setApplicationTransferParams($transferParams);
$appDataTransfer->applicationId = "iDString"; //set application ID
$newTransfer = New \Google_Service_DataTransfer_DataTransfer();
$newTransfer->setOldOwnerUserId('accountID'); //origin account IDs are placeholders
$newTransfer->setNewOwnerUserId('account2ID'); //destination account
$newTransfer->setApplicationDataTransfers($appDataTransfer);
$result = $this->transfers->transfers->insert($newTransfer); //execute insert
执行插入后,我收到代码 400,消息中缺少必填字段:[resource.applicationDataTransfer]。
如果我通过网络测试真实参数,它们就可以工作。 我一定是遗漏了什么,因为那个例外根本没有意义。
我也愿意接受其他解决方案。
setApplicationDataTransfers
方法需要一个 Google_Service_DataTransfer_DataTransfer
数组,因此您只需要更新以下行(注意参数中的 [])
$newTransfer->setApplicationDataTransfers([$appDataTransfer]);