documentation for Google Documents List API似乎在说你可以创建一个本地文档并上传它。有没有办法通过在 Google Docs上创建和编辑文档API?
发布于 2010-04-24 23:29:51
虽然the docs称之为“上传”,但一切都归结为发送一个适当格式化的HTTP POST
请求,所以当然它实际上可以是一个新的创建,而不是一个已有文件的实际“上传”。(通过POST
请求创建类似于通常所描述的REST API
,不过在实际的REST
中,您通常会使用PUT
请求来代替)。
您只需要创建一个表示文档的blob数据块,格式为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
每种特定的编程语言都提供了专门的应用程序接口,可以帮助完成这项不太难的任务;例如,在Python中,根据the docs,应用程序接口建议使用ETags
,以避免在多个客户端同时“上传”(即创建或更新文档)时覆盖更改。但是直接准备POST总是可能的,因为几乎-REST API被记录为,这是所有特定语言API的底层协议。
发布于 2012-06-08 07:02:18
Alex的回答虽然毫无疑问是正确的,但却回避了一个问题:“我如何通过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 Group的GData Docs API通过this post找到的。
关键的见解(至少对我来说)是:
(我找不到Alex的文档链接所引用的特定于Python的开发人员指南--可能是在谷歌将文档资产从code.google.com转移到developers.google.com的过程中丢失或被埋没了。(Alex的链接现在重定向到更通用的文档,该文档主要显示.NET和Java示例,但只显示少量Python。)
发布于 2019-02-05 06:09:55
截至2019年2月4日,Google Docs现在有了REST API。
https://stackoverflow.com/questions/2704902
复制相似问题