gpt4 book ai didi

python - 使用 Drive API 编辑 Google 文档

转载 作者:太空狗 更新时间:2023-10-29 23:55:21 26 4
gpt4 key购买 nike

(为了清楚起见,这篇文章涉及 Google Documents List APIGoogle Drive APIGoogle App Engine 上与 Python 的区别)

使用 [现已弃用] 文档列表 API,我可以通过导出为 HTML、修改 HTML 然后重新上传来编辑 Google 文档,无论是作为新文档还是作为对原始文档的修改。这对于从模板生成 PDF 文档之类的事情很有用。我一直在尝试使用新的 Drive API (V2) 复制此功能,但似乎无法做到。

想出了这个...

http = # authenticated http client
drive_service = build('drive', 'v2', http=http)

# get the file ...
file = drive_service.files().get(fileId=FILE_ID).execute()

# download the html ...
url = file['exportLinks']['text/html']
response, content = http.request(url)

# edit html
html = content.replace('foo', 'bar')

# create new file with modified html ...
body = {'title':'Modified Doc',
'description':'Some description',
'mimeType':'text/html'}
media_body = MediaIoBaseUpload(StringIO.StringIO(html), 'text/html', resumable=False)
drive_service.files().insert(body=body, media_body=media_body)

以上代码将 html 文件作为文件上传到 Google 云端硬盘,而不是将 HTML 渲染到 Google 文档中。很公平,这是有道理的。但是如何让它呈现为 Google 文档,就像我能够使用 Documents List API 所做的那样?

另一件事 - 如果我设置 resumable=True 它会在 App Engine 上抛出以下错误 - '_StreamSlice' 没有 len()。无法弄清楚如何让 resumable=True 工作?

最后一件事 - sample code in the docs使用 MediaInMemoryUpload 对象,但是 if you look at the source现在已弃用,取而代之的是 MediaIoBaseUpload。示例代码应该更新吗?!

最佳答案

我怀疑问题在于转换的默认值已从 true 更改为 false。您必须在上传时明确设置 convert=true。参见 https://developers.google.com/drive/v2/reference/files/insert

关于python - 使用 Drive API 编辑 Google 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com