Google Drive API обновляет содержимое txt файла

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

"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();
}
}

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

1

Решение

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

Решение состоит в том, чтобы создать пустой File установка только новых значений:

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

Замечания: File относится к com.google.api.services.drive.model.File (это не java.io.File).

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]