[英]Google Drive API - children list returns “Google_Http_Request” instead “Google_Service_Drive_ChildList”
[英]Undefined property: Google_Http_Request::$id when trying to insert file into Drive
我正在嘗試使用yannisg的Google上載程序作為基礎,並使用Google雲端硬盤示例的修改版,將用戶提交的文件插入以用戶命名的特定文件夾中。 該文件夾是在上傳過程中創建的。 但是我收到有關未定義ID的上述錯誤。 然后,它將文件上傳到雲端硬盤的根文件夾中。 我正在使用PHP客戶端的v1-master 。
function upload(){
$client = $this->client;
$service = $this->service; //$service = new Google_Service_Drive($client);
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($this->ownerName); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
//create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $this->fileName;
$chunkSizeBytes = 1 * 1024 * 1024;
$fileRequest = $this->fileRequest;
$mimeType = $this->mimeType;
//Set parent id
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($folderData->id);
$file->setParents(array($parent));
$request = $service->files->insert($file);
//The rest of the script...
}
我認為問題出在這里
$parent->setId($folderData->id);
這是修改后的示例腳本的一部分,效果很好。 我本來會用到的,但是我似乎無法正確地將其集成到我需要運行的另一個腳本中。 yannisg負責刷新令牌。
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($_FILES["uploaded"]["name"]); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
var_dump($folderData);
//Create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $_FILES["uploaded"]["name"];
$chunkSizeBytes = 1 * 1024 * 1024;
//Set parent id
$parent = new Google_Service_Drive_ParentReference(); //previously Google_ParentReference
$parent->setId($folderData->id);
$file->setParents(array($parent));
Var轉儲第二個腳本給我對象(Google_Service_Drive_DriveFile),而第一個給我對象(Google_Http_Request)。 是因為第一個在班上嗎?
提前致謝。
我解決了 這與延期有關。 用yannisg的腳本,
$client->setDefer(true);
在較早的函數中聲明,這意味着用於創建文件夾的語句與文件一起執行。 難怪它無法抓住父母的身份證。 將其移動到文件夾插入部分下方之后,所有內容將再次正常運行。
//folder insertion
$client->setDefer(true);
$request = $service->files->insert($file); //file insertion
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.