我想在自己的 Python 应用程序中使用 UbuntuOne。我想访问联系人并存储其他数据。但我找不到任何文档或 (Python) 示例。我该如何使用它?
答案1
您会很高兴听到,有多种不同的方法可以处理您的 Ubuntu One 数据。
如果你的 Python 应用程序在 Ubuntu 上运行
您的联系人数据存储在 Ubuntu One 中,并同步到您的桌面。联系人数据可在桌面沙发存储系统。您可以了解有关desktopcouch的更多信息在文档中作为 Ubuntu One 应用开发者计划的一部分,未来几个月将会提供更多信息。
简短摘要:desktopcouch 是您自己的个人 CouchDB,在您的 Ubuntu 桌面上运行,您的联系人存储在其中。因此,您可以使用 deskercouch.records 库来访问您的联系人:
from desktopcouch.records.server import CouchDatabase
CONTACT_RECORD_TYPE = 'http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact'
db=CouchDatabase('contacts')
contact_names = []
for row in db.get_records(record_type=CONTACT_RECORD_TYPE):
first_name = row.value.get('first_name', '')
last_name = row.value.get('last_name', '')
contact_names.append('%s %s' % (first_name, last_name))
print contact_names
有关如何使用桌面沙发数据的更多示例,请参阅Desktopcouch 文档页面. 联系人的数据格式为定义在这里。
您可以在desktopcouch中创建任何其他您喜欢的数据库;只需执行
db = CouchDatabase("my_new_db", create=True)
然后使用该数据库;您的新数据库将同步到您的个人云和所有机器,并且您可以在其中存储您想要的任何数据。
如果你的 Python 应用程序未在 Ubuntu 上运行,或者你想直接访问 Ubuntu One 上的数据
您的数据存储在 Ubuntu One 云端的个人 CouchDB 中,以及 Ubuntu 桌面的 Desktopcouch 中。如果您愿意,可以直接在个人云中访问它。您需要熟悉 OAuth。首先,获取 Ubuntu One 的 OAuth 令牌;您可以通过查看密钥环从 Ubuntu 桌面执行此操作。接下来,OAuth 签署请求https://one.ubuntu.com/api/account/它将返回一些 JSON,包括你的“couchdb_root”,它看起来像https://couchdb.one.ubuntu.com/u/abc/efg/12345。
您的个人云联系人数据库随后可在https://couchdb.one.ubuntu.com/u%2Fabc%2Fefg%2F12345%2Fcontacts(它是您的 couchdb_root,末尾带有“contacts”,/ 转义为 %2F)。然后,您可以通过 OAuth 签名向其发送 curl 请求,像使用任何 CouchDB 一样使用它。CouchDB 指南解释如何通过 HTTP 使用 CouchDB。
处理笔记稍微复杂一些:笔记的主要存储是 Tomboy 应用程序。Tomboy 会将您的笔记同步到 Ubuntu One,它们可以在您的个人云 CouchDB(名为“notes”的数据库)中使用,并且该“notes”数据库也会同步到 Desktopcouch。但是,如果您的应用程序在 Ubuntu 桌面上运行,我建议您使用 Tomboy 全面的 D-Bus API 直接在源上处理您的笔记,而不是编辑 Desktopcouch 副本并等待这些更改同步到 Ubuntu One,然后再同步到 Tomboy!这篇 Ars Technica 文章解释了一些如何做到这一点的方法,并且 Tomboy 团队是非常可爱的人,他们会很乐意提供帮助。
我们 (Ubuntu One) 正在建立一个应用程序开发人员计划,以便更轻松地回答此类问题并提供指导和文档;我很想听听你打算做什么,以及我如何让你更轻松,所以请给我写信(stuart.langridge @ canonical.com,或http://kryogenix.org/contact) 如果我能帮忙,或者将更多问题发布到 askubuntu!
答案2
如果你想看一些在 osx 上运行的示例代码(尽管是跨平台的),请参阅https://github.com/ddimmich/unbuntuone-python/- 这将从 ubuntu one 下载/更新文件并使用 oauth 等。它仍处于早期阶段,但它演示了 oauth 过程,存储了您的访问令牌并愉快地下载文件。