Подтвердить что ты не робот

Как создать документ в Документах Google программно?

Документация для API списка документов Google, похоже, что вы можете создать локальный документ и загрузить его. Не существует способа создать и отредактировать документ на Google Docs с помощью API?

4b9b3361

Ответ 1

В то время как документы называют его "загрузкой", все сводится к отправке соответствующего отформатированного запроса HTTP POST, поэтому, конечно, это может быть новым созданием, а не фактической "загрузкой" другого существующего файла. (Создание через POST запросов похоже на то, что обычно описывается как REST API, хотя в реальном REST вы обычно используете запрос PUT вместо курса).

Вам просто нужно создать капли данных, представляющих ваш документ, в любом из перечисленных форматов здесь - в зависимости от вашего языка программирования, простейшего может быть text/csv для электронной таблицы и application/rtf для текстового документа, а затем вставить в соответствующие отформатированные данные POST. Например, чтобы сделать электронную таблицу простейшим способом (без метаданных), вы могли бы POST что-то вроде:

POST /feeds/default/private/full HTTP/1.1
Host: docs.google.com
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 81047
Content-Type: text/csv
Slug: Example Spreadsheet

ColumnA, ColumnB
23, 45

Каждый конкретный язык программирования, для которого предоставлен выделенный API, может помочь в решении этой не столь сложной задачи; например, в Python, за документы, API рекомендует использовать ETags, чтобы избежать перезаписи изменений, когда несколько клиентов одновременно "загружают" (т.е., создание или обновление документов). Но подготовка POST напрямую всегда возможна, поскольку API почти-REST документируется как протокол , лежащий в основе всех API-интерфейсов, специфичных для языка.

Ответ 2

Ответ Алекса, хотя, несомненно, правильный, напрашивается вопрос: "Как мне это сделать через API Google Docs?"

Вот способ (в Python, потому что я такой парень):

import gdata.docs.service
import StringIO

client = gdata.docs.service.DocsService()
client.ClientLogin(username, password,
                   source='Spreadsheet Creation Example')

content = 'COL_A, COL_B, COL_C, COL_D\ndata1, data2, data3, data4'
ms = gdata.MediaSource(file_handle=StringIO.StringIO(content),
                       content_type='text/csv',
                       content_length=len(content))
entry = client.Upload(ms, 'Test Spreadsheet')

Это небольшой набор методов, которые я нашел в http://code.google.com/p/gdata-python-client/source/browse/tests/gdata_tests/docs/service_test.py, который я, в свою очередь, нашел с помощью этого сообщение из группы Google для API GData Docs.

Ключевые идеи (для меня в любом случае) были:

  1. понимая, что формальный параметр конструктора MediaSource "file_handle" будет принимать любой файлоподобный объект, и
  2. обнаружение (как упоминается в сообщении OP в посте группы Google), что модульные тесты являются отличным источником примеров

(Я не смог найти руководство разработчика для Python, на которое ссылается ссылка Alex doc - возможно, оно было потеряно или похоронено при перемещении ресурсов документации Google с code.google.com на developers.google.com. Ссылка Alex теперь перенаправляет к более общему документу, который показывает в основном примеры .NET и Java, но только немного Python.)

Ответ 3

По состоянию на 4 февраля 2019 года в Документах Google появился API REST.

См. Документацию: https://developers.google.com/docs/api/.

Ответ 4

(Сентябрь 2019 г.) Существует 3 способа программного создания документа в Документах Google:

  1. Google Docs REST API (низкоуровневый; Python, JS/Node.js, Java, С#/. NET, PHP, Ruby, Go и т.д.)
  2. Сценарий Google Apps (высокоуровневый; только JavaScript)
  3. Google Drive API (как и в низкоуровневом API-интерфейсе Docs выше; обе вышеупомянутые альтернативы могут создавать или редактировать документы, но это create- или только для удаления плюс редактирование общего доступа/разрешений)

API Docs был официально запущен в феврале 2019 года. Я подготовил общий обзор видео того, как будет выглядеть приложение слияния с использованием API. (Это не полноценный эпизод G Suite Dev Show, но ссылка на рабочий образец.) Ознакомьтесь с различными руководствами по использованию API, в том числе с примерами быстрого запуска в различных языки программирования.

OTOH, Apps Script - это более простая альтернатива более высокого уровня. Это пользовательская среда выполнения JavaScript на стороне сервера, поддерживающая приложения, которые размещаются + выполняются в облаке Google. Используйте объекты для общения с различными API Google (G Suite и не только) без знания HTTP, REST или OAuth2. Вы также можете обращаться к внешним базам данных с помощью службы JDBC или вызывать другие приложения с помощью службы поиска URL-адресов.

С помощью скрипта Apps вы можете создавать автономные приложения, приложения с привязкой к документу (работает только для одного документа) или надстройки Документов Google для расширения функциональность Google Docs. Здесь находится обзорная страница скрипта Google Docs Apps, а также справочная документация скрипта Apps reference documentation для Google Docs (Служба документов). Я также создал множество видео со сценарием приложений, если это ваш любимый способ обучения. Если вы новичок в скрипте приложений, см. мой ответ на аналогичный вопрос SO, чтобы получить дополнительные учебные ресурсы.

Как правило, API Документов, Листов, Слайдов и т.д. Используются для выполнения ориентированных на документы функций, в то время как Drive API используется главным образом для операций на основе файлов. Однако "создать" - это особый случай, когда вы можете использовать любой из них. См. мой ответ на другой вопрос SO, который показывает разницу между созданием нового Google Sheet с помощью API Sheets и Drive API. (Оба примера в Python.) Прочтите это, если вы заинтересованы в управлении доступом или обновлении разрешений Документов Google.