web-dev-qa-db-fra.com

Comment puis-je accéder aux contacts et notes d'UbuntuOne avec Python?

Je veux utiliser UbuntuOne dans ma propre application Python. Je veux accéder aux contacts et peut-être stocker d'autres données. Mais je n'ai pas pu trouver de documentation ou d'exemples (Python). Comment puis-je utiliser cela?

7
burli

Il y a plusieurs façons de travailler avec vos données Ubuntu One, vous serez ravi de les entendre.

Si votre Python fonctionne sur Ubuntu

Vos données de contacts sont stockées dans Ubuntu One et sont également synchronisées avec votre bureau. Les données des contacts sont disponibles dans le système de stockage desktopcouch. Vous pouvez en savoir plus sur desktopcouch dans la documentation . Il y aura plus d'informations disponibles au cours des prochains mois dans le cadre du programme de développement d'applications Ubuntu One.

Un bref résumé: desktopcouch est votre propre CouchDB personnel, fonctionnant sur votre bureau Ubuntu, et vos contacts y sont stockés. Vous pouvez donc utiliser la bibliothèque desktopcouch.records pour accéder à vos contacts:

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

Il y a plus d'exemples sur la façon de travailler avec les données desktopcouch dans la page de documentation desktopcouch . Le format de données pour les contacts est défini ici .

Vous pouvez créer toutes les autres bases de données que vous aimez dans desktopcouch; fais simplement

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

puis travailler avec cette base de données; votre nouvelle base de données sera synchronisée avec votre cloud personnel et avec toutes vos machines, et vous pourrez y stocker toutes les données que vous souhaitez.

Si votre application Python ne fonctionne pas sur Ubuntu ou si vous souhaitez accéder directement aux données sur Ubuntu One

Vos données sont stockées dans votre propre CouchDB personnel dans le cloud d'Ubuntu One ainsi que dans desktopcouch sur votre bureau Ubuntu. Vous pouvez y accéder directement dans votre cloud personnel si vous le souhaitez. Vous devrez vous familiariser avec OAuth pour cela. Tout d'abord, procurez-vous un jeton OAuth pour Ubuntu One; vous pouvez le faire à partir d'un bureau Ubuntu en regardant dans le trousseau de clés. Ensuite, OAuth signez une demande à https://one.ubuntu.com/api/account/ qui renverra du JSON, y compris votre " couchdb_root ", qui ressemblera à https://couchdb.one.ubuntu.com/u/abc/efg/12345 .

Votre base de données de contacts cloud personnels est alors disponible à https://couchdb.one.ubuntu.com/u%2Fabc%2Fefg%2F12345%2Fcontacts (c'est votre couchdb_root avec "contacts" à la fin, et le/s'est échappé vers% 2F). Vous pouvez ensuite travailler avec cela comme avec n'importe quel CouchDB en signant OAuth vos demandes de boucle. Le guide CouchDB explique comment travailler avec CouchDB sur HTTP.

Travailler avec des notes est un peu plus compliqué: le magasin principal pour les notes est l'application Tomboy. Tomboy synchronisera vos notes avec Ubuntu One, et elles sont disponibles dans votre cloud personnel CouchDB (une base de données appelée "notes"), et cette base de données "notes" est également synchronisée dans desktopcouch. Cependant, si votre application s'exécute sur le bureau Ubuntu, je vous recommande d'utiliser l'API D-Bus complète de Tomboy pour travailler avec vos notes directement à la source, plutôt que de modifier les copies du bureau et d'attendre que ces modifications soient synchronisées. à Ubuntu One, puis à nouveau à Tomboy! Cet article d'Ars Technica explique comment procéder, et l'équipe Tomboy sont des gens adorables qui seront toujours prêts à vous aider.

Nous (Ubuntu One) développons un programme de développement d'applications pour le rendre encore plus facile à répondre à ce genre de question et fournir des conseils et de la documentation; J'aimerais savoir ce que vous prévoyez de faire et comment je peux vous faciliter la tâche, alors n'hésitez pas à me contacter (stuart.langridge @ canonical.com, ou http: // kryogenix. org/contact ) si je peux aider, ou poster plus de questions à askubuntu!

12
sil

Si vous voulez voir un exemple de code qui s'exécute sur osx (bien qu'il soit multiplateforme), veuillez voir https://github.com/ddimmich/unbuntuone-python/ - cela télécharge/met à jour les fichiers d'ubuntu un et utilise oauth etc. Son toujours aux premiers stades mais il montre le processus oauth, stocke votre jeton d'accès et et télécharge avec plaisir les fichiers.

0
ddimmich