Какие типы пантомимы можно использовать для экспорта Сайтов Google, Google Forms и Google Scripts с помощью API Google Drive? - PullRequest
1 голос
/ 23 июня 2019

Используя конечную точку list API Google Диска, я могу получить идентификатор файла и mimetype файла сайта Google.

Я попытался загрузить файл, но это не удалось.Я получаю ответ: «Можно загружать только файлы с двоичным содержимым. Используйте Экспорт с файлами Google Документов».Имеет смысл.

Следуя документации здесь , я устал экспортировать файл, и он также не удается.Ответ, который я получаю:

com.google.api.client.http.HttpResponseException: 400 Bad Request
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "The requested conversion is not supported.",
    "locationType": "parameter",
    "location": "convertTo"
   }
  ],
  "code": 400,
  "message": "The requested conversion is not supported."
 }
}

Я попробовал его с mimetype "application / pdf" и "application / zip" и "text / html" и все еще получил тот же ответ.Каковы мои варианты экспорта здесь?Я не могу найти какую-либо документацию по этому вопросу.

У меня аналогичная проблема с файлами Google Form и Google Script.

Пример моего кода Java:

Export export = driveService.files().export(fileId, "application/pdf");
export.executeMediaAndDownloadTo(outputStream);

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Метод Files: export экспортирует Google Doc в MIME-тип , указанный в запросе. Это можно сделать с помощью GET https://www.googleapis.com/drive/v3/files/<fileId>/export, где fileId - это идентификатор документа, который вы хотите экспортировать.

Поддерживаемые типы файлов Google Диска MIME перечислены здесь . Однако при попытке экспорта эти типы не поддерживаются. Если вы хотите получить файлы этих типов MIME, то можно использовать простой GET запрос к URL-адресу ресурса файла , как в GET https://www.googleapis.com/drive/v3/files/<fieldId>?alt=media. Files: export метод вернет

{
 "error": {
  "errors": [

    "domain": "global",
    "reason": "badRequest",
    "message": "The requested conversion is not supported.",
    "locationType": "parameter",
    "location": "convertTo"

  ],
  "code": 400,
  "message": "The requested conversion is not supported."

}

Если вы попытаетесь экспортировать в файл Google MIME-тип.

Однако вы можете использовать MIME-типы , указанные здесь , для экспорта документа Google. MIME-типы application/pdf, application/zip, text/html и application/vnd.openxmlformats-officedocument.wordprocessingml.document являются поддерживаемыми типами и могут быть протестированы с помощью функции ‘Try this API’ для Files: export.

1 голос
/ 24 июня 2019

По последнему обновлению Google свойство exportLinks также было добавлено в Drive API v3. Это свойство раньше можно было использовать только в Drive API v2. Благодаря этому обновлению URL-адреса для экспорта преобразованных файлов из Документов Google можно получить с помощью метода files.get в Drive API v3. Конечная точка для этого метода следующая.

Конечная точка:

GET https://www.googleapis.com/drive/v3/files/{fileId}?fields=exportLinks
  • Когда он запрашивает этот URL, можно загрузить большой двоичный объект.
  • Например, URL для экспорта электронной таблицы в виде файла PDF выглядит следующим образом.

    - https://docs.google.com/spreadsheets/export?id={fileId}&exportFormat=pdf
    
  • Вы также можете напрямую создать экспортирующий URL, как указано выше.

    • Когда вы используете это, если файл Документов Google не является общедоступным, используйте токен доступа, полученный из OAuth2 и / или Сервисной учетной записи. Если файл открыт для общего доступа, вы можете загрузить его с помощью ключа API.

Справка:

...