【问题标题】:How to upload documents with new python-gdata (2.0.16)?如何使用新的 python-gdata (2.0.16) 上传文档?
【发布时间】:2012-02-26 00:26:14
【问题描述】:

使用 python-gdata 2.0.14,我使用以下代码创建和上传文档:

# To create a document
import gdata.docs
import gdata.docs.client
from gdata.data import MediaSource

gdClient = gdata.docs.client.DocsClient(source="my-app")
gdClient.ssl = True
gdClient.ClientLogin("login", "pa$$word", gdClient.source)
ms = MediaSource(file_path="temp.html", content_type="text/html")
entry = gdClient.Upload(ms, "document title")
print "uploaded, url is", entry.GetAlternateLink().href

# To update a document
entry.title.text = "updated title"
entry = gdClient.Update(entry, media_source=ms, force=True)
print "updated, url is", entry.GetAlternateLink().href

但是,此代码不再适用于 python-gdata 2.0.16,因为 DocsClient class 不再具有 UploadUpdate 函数。

我试过用这个

# Try to create a document
gdClient = gdata.docs.client.DocsClient(source="my-app")
gdClient.ssl = True
gdClient.ClientLogin("login", "pa$$word", gdClient.source)
ms = MediaSource(file_path="temp.html", content_type="text/html")
entry = gdata.docs.data.Resource(type=gdata.docs.data.DOCUMENT_LABEL, title="document title")
self.resource = gdClient.CreateResource(entry, media=ms)

...但我收到此错误:

gdata.client.Unauthorized: Unauthorized - Server responded with: 401, 'Token invalid'

谁能告诉我我的错误在哪里以及我应该如何使用这个新 API?

附: The documentation 尚未更新,仍然使用旧式代码。

【问题讨论】:

    标签: python gdata google-docs gdata-api google-docs-api


    【解决方案1】:

    我最近也遇到了这个问题。这对我有用:

    import gdata.docs.data
    import gdata.docs.client
    
    client = gdata.docs.client.DocsClient(source='your-app')
    client.api_version = "3"
    client.ssl = True
    client.ClientLogin("your@email.com", "password", client.source)
    
    filePath = "/path/to/file"
    newResource = gdata.docs.data.Resource(filePath, "document title")
    
    media = gdata.data.MediaSource()
    media.SetFileHandle(filePath, 'mime/type')
    
    newDocument = client.CreateResource(newResource, create_uri=gdata.docs.client.RESOURCE_UPLOAD_URI, media=media)
    

    编辑:添加要导入的包以避免混淆

    【讨论】:

    • 谢谢! Python 3 版本(我使用 2to3 构建的)仍然存在一些错误,但我稍后会尝试解决这些问题。
    • 你好。您的示例对我有用,但不是将文档放在我想要的文件夹中(或者我应该对我提供的 url 说)放在我的帐户中。假设组内的每个人都可以看到该文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2011-11-20
    • 2012-02-25
    • 2012-04-23
    • 2018-07-21
    相关资源
    最近更新 更多