documentation for Google Documents List API似乎表示您可以创建本地文档并上传它。是否无法通过API在 Google Docs上实际创建和编辑文档?
答案 0 :(得分:27)
虽然the docs将其称为“上传”,但所有内容都归结为发送格式正确的HTTP POST
请求,因此当然它实际上可能是新创建的而不是实际“上传”其他现有文件。 (通过POST
请求创建类似于通常描述为REST API
的内容,但在真实REST
中,您通常使用PUT
请求而非当然)。
您只需要创建以here列出的任何格式表示文档的大量数据 - 根据您的编程语言,对电子表格最简单的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中,根据the docs,API建议使用ETags
来避免在多个客户端同时“上传”(即创建或更新文档)时覆盖更改。但是直接准备POST总是可行的,因为几乎REST API被记录为所有特定于语言的API的 协议。
答案 1 :(得分:13)
亚历克斯的回答虽然无疑是正确的,但却引出了一个问题:“我如何通过Google Docs API做到这一点?”
这是一种方式(在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群组中的this post找到GData Docs API。
关键见解(对我来说无论如何)是:
(我无法找到Alex的文档链接引用的特定于Python的开发人员指南 - 可能是因为Google将文档资产从code.google.com转移到developers.google.com而丢失或埋没了。 link现在重定向到更通用的文档,该文档主要显示.NET和Java示例,但只有一点Python。)
答案 2 :(得分:2)
自2019年2月4日起,Google文档现在具有REST API。
答案 3 :(得分:1)
(2019年9月),您可以通过以下三种方式在Google文档中以编程方式创建文档:
Docs API于2019年2月正式launched。我制作了high-level video overview,说明使用该API的邮件合并应用程序的外观。 (这不是完整的G Suite Dev Show情节,但确实链接到工作示例。)查看使用API的各种guides,包括各种编程语言的Quickstart示例。
OTOH,Apps Script是一个更简单,更高级的选择。这是一个自定义服务器端JavaScript运行时,支持在Google的云中托管+执行的应用。使用对象与various Google APIs (G Suite & beyond)进行对话,而无需了解HTTP,REST或OAuth2。您还可以使用其JDBC Service访问外部数据库,或通过其URL Fetch Service调用其他应用。
使用Apps脚本,您可以创建standalone applications,document-bound applications(仅适用于单个文档)或Google Docs Add-ons来扩展Google文档的功能。这是Google Docs Apps脚本overview page以及Google Docs(文档服务)的Apps脚本reference documentation。如果您是首选的学习工具,我还制作了variety of Apps Script videos。如果您不熟悉Apps脚本,请参见my answer to a similar SO question,以获取更多学习资源。
通常,文档,表格,幻灯片等API用于执行面向文档的功能,而Drive API主要用于基于文件的操作。但是,“创建”是一种特殊情况,您可以使用其中任何一个。请参见my answer to another SO question,其中显示了通过Sheets API与Drive API黑白创建新Google Sheet的区别。 (两个示例均使用Python。)如果您有兴趣管理Google文档的共享或更新权限,请阅读this。