2016-09-30 2 views
1

Я создал одну папку, и внутри этой папки я создал 2 текстовых файла с некоторым текстом внутри. Я также могу перечислить файлы и получить текст в них без проблем. Теперь я пытаюсь обновить текст внутри этого файла, но я всегда получаю эту ошибку:API Google Диска PHP - обновление содержимого txt-файла

"domain": "global", 
"reason": "fieldNotWritable", 
"message": "The resource body includes fields which are not directly writable." 

Я создал функцию, аналогичную представленной в https://developers.google.com/drive/v2/reference/files/update.

Я использовал этот пример, потому что в версии v3 Google не представляет никакого примера, и я не могу найти ничего, что могло бы мне помочь в этом. Моя функция ниже.

function updateFile ($service, $fileId, $newTitle, $newDescription, $newMimeType, $text) { 
    try { 
     // First retrieve the file from the API. 
     $file = $service->files->get($fileId); 

     // File's new metadata. 
     $file->setName($newTitle); 
     $file->setDescription($newDescription); 
     $file->setMimeType($newMimeType); 

     // File's new content. 
     $additionalParams = array(
      'data' => $text, 
      'uploadType' => 'media' 
     ); 

     // Send the request to the API. 
     $updatedFile = $service->files->update($fileId, $file, $additionalParams); 
     return $updatedFile; 
    } catch (Exception $e) { 
     print "An error occurred: " . $e->getMessage(); 
    } 
} 

Заранее спасибо.

ответ

0

Исходя из этого SO answer, на v3, используя update как это бросает ошибку fieldNotWritable.

The solution is to create an empty File setting only the new values:

File newContent = new File(); 
newContent.setTrashed(true); 
service.files().update(fileId, newContent).execute(); 

Note: File refers to com.google.api.services.drive.model.File (it is not java.io.File).

Кроме того, на основе данного documentation, вы можете увидеть, что разделяемый не записываемое поле. Вы можете поделиться файлом, добавив новое разрешение, и вы можете проверить, был ли файл разделен, прочитав общее свойство. Но говорить, что файл является общим, кроме фактического обмена им, не имеет смысла. [Source.]

Смежные вопросы