Документация для API списка документов Google, похоже, что вы можете создать локальный документ и загрузить его. Не существует способа создать и отредактировать документ на Google Docs с помощью API?
Как создать документ в Документах Google программно?
Ответ 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.
Ключевые идеи (для меня в любом случае) были:
- понимая, что формальный параметр конструктора MediaSource "file_handle" будет принимать любой файлоподобный объект, и
- обнаружение (как упоминается в сообщении 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:
- Google Docs REST API (низкоуровневый; Python, JS/Node.js, Java, С#/. NET, PHP, Ruby, Go и т.д.)
- Сценарий Google Apps (высокоуровневый; только JavaScript)
- 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.