Wie kann ich mit Python auf UbuntuOne-Kontakte und -Notizen zugreifen?

7

Ich möchte UbuntuOne in meiner eigenen Python-Anwendung verwenden. Ich möchte auf Kontakte zugreifen und möglicherweise andere Daten speichern. Ich konnte jedoch keine Dokumentation oder (Python-) Beispiele finden. Wie kann ich das nutzen?

burli
quelle

Antworten:

12

Es gibt verschiedene Möglichkeiten, mit Ihren Ubuntu One-Daten zu arbeiten. Sie werden erfreut sein, diese zu hören.

Wenn Ihre Python-Anwendung unter Ubuntu ausgeführt wird

Ihre Kontaktdaten werden in Ubuntu One gespeichert und auch mit Ihrem Desktop synchronisiert. Kontaktdaten sind im Desktopcouch- Speichersystem verfügbar. Weitere Informationen zu Desktopcouch finden Sie in der Dokumentation . Im Rahmen des Ubuntu One App-Entwicklerprogramms werden in den nächsten Monaten weitere Informationen verfügbar sein.

Eine kurze Zusammenfassung: desktopcouch ist Ihre persönliche CouchDB, die auf Ihrem Ubuntu-Desktop ausgeführt wird, und Ihre Kontakte werden darin gespeichert. Sie können also die Bibliothek desktopcouch.records verwenden, um Zugriff auf Ihre Kontakte zu erhalten:

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

Weitere Beispiele für die Arbeit mit Desktopcouch-Daten finden Sie auf der Desktopcouch-Dokumentationsseite . Hier wird das Datenformat für Kontakte definiert .

Sie können in Desktopcouch beliebige andere Datenbanken erstellen. einfach tun

db = CouchDatabase("my_new_db", create=True)

und dann mit dieser Datenbank arbeiten; Ihre neue Datenbank wird mit Ihrer persönlichen Cloud und allen Ihren Computern synchronisiert, und Sie können beliebige Daten darin speichern.

Wenn Ihre Python-Anwendung nicht unter Ubuntu ausgeführt wird oder Sie direkt auf die Daten von Ubuntu One zugreifen möchten

Ihre Daten werden in Ihrer persönlichen CouchDB in der Cloud von Ubuntu One sowie in Desktopcouch auf Ihrem Ubuntu-Desktop gespeichert. Sie können direkt in Ihrer persönlichen Cloud darauf zugreifen, wenn Sie dies wünschen. Dazu müssen Sie mit OAuth vertraut sein. Erhalten Sie zunächst ein OAuth-Token für Ubuntu One. Sie können dies von einem Ubuntu-Desktop aus tun, indem Sie in den Schlüsselring schauen. Als Nächstes signiert OAuth eine Anfrage an https://one.ubuntu.com/api/account/, die JSON zurückgibt, einschließlich Ihrer "couchdb_root", die wie https://couchdb.one.ubuntu.com/u aussieht / abc / efg / 12345 .

Ihre persönliche Cloud-Kontaktdatenbank ist dann unter https://couchdb.one.ubuntu.com/u%2Fabc%2Fefg%2F12345%2Fcontacts verfügbar (es ist Ihre couchdb_root mit "Kontakten" am Ende und die / ist auf% 2F maskiert). . Sie können dann wie bei jeder CouchDB damit arbeiten, indem Sie Ihre Curl-Anforderungen mit OAuth signieren. Das CouchDB-Handbuch erklärt, wie Sie mit CouchDB über HTTP arbeiten.

Das Arbeiten mit Notizen ist etwas komplizierter: Der primäre Speicher für Notizen ist die Tomboy-Anwendung. Tomboy synchronisiert Ihre Notizen mit Ubuntu One und sie sind in Ihrer persönlichen Cloud CouchDB (einer Datenbank namens "Notizen") verfügbar. Diese DB "Notizen" wird auch mit Desktopcouch synchronisiert. Wenn Ihre Anwendung jedoch auf dem Ubuntu-Desktop ausgeführt wird, würde ich empfehlen, dass Sie die umfassende D-Bus-API von Tomboy verwenden, um mit Ihren Notizen direkt an der Quelle zu arbeiten, anstatt die Desktopcouch-Kopien zu bearbeiten und darauf zu warten, dass diese Änderungen synchronisiert werden zu Ubuntu One und dann wieder runter zu Tomboy! In diesem Artikel von Ars Technica wird erklärt, wie das geht, und das Tomboy-Team ist ein liebenswürdiger Mensch, der gerne hilft.

Wir (Ubuntu One) bauen ein Anwendungsentwicklerprogramm auf, um die Beantwortung dieser Art von Fragen noch einfacher zu machen und Anleitungen und Dokumentationen bereitzustellen. Ich würde gerne hören, was Sie vorhaben und wie ich es Ihnen leichter machen kann. Schreiben Sie mir bitte eine Nachricht (stuart.langridge @ canonical.com oder http://kryogenix.org/contact ). wenn ich helfen kann oder weitere Fragen an askubuntu stelle!

sil
quelle
1
Ist diese Antwort noch gültig? Ich dachte, dass Desktop-Couch in 12.04 nicht mehr verwendet wird?
Xubuntix
0

Wenn Sie Beispielcode sehen möchten, der auf osx ausgeführt wird (obwohl plattformübergreifend), lesen Sie bitte https://github.com/ddimmich/unbuntuone-python/ - dieser lädt Dateien von Ubuntu One herunter / aktualisiert sie und verwendet oauth usw. Es befindet sich noch im Anfangsstadium, demonstriert jedoch den Oauth-Prozess, speichert Ihr Zugriffstoken und lädt Dateien gerne herunter.

ddimmich
quelle