À ce stade (au 27 septembre 2020), il est encore expérimental et le SDK officiel pour Python ne prend pas en charge Python 3.
GitHub - evernote/evernote-sdk-python3: Testing the Evernote Cloud API for Python 3
This is a test SDK! The official Evernote SDK for Python doesn't support Python 3 yet; this repository is an experiment as we try to migrate.
This SDK contains wrapper code used to call the Evernote Cloud API from Python.
La référence de l'API peut être trouvée dans All Thrift declarations, mais ce n'est pas pour Python, vous voudrez peut-être aussi vérifier la partie pertinente du code source. ..
Installez le SDK Evernote pour Python 3.
$ pip install evernote3==1.25.14
oauth2 doit également être installé (car il n'est pas automatiquement installé en tant que dépendance).
$ pip install oauth2
from datetime import datetime, timezone, timedelta
#Utiliser le SDK Evernote pour Python 3
from evernote.api.client import EvernoteClient
from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec
# evernote.api.client.Initialiser EvernoteClient
client = EvernoteClient(
token = 'YOUR_AUTH_ACCESS_TOKEN', #Spécifiez le jeton d'accès
sandbox = False #Spécifiez explicitement False lors de l'utilisation d'un environnement de production au lieu de Sandbox
)
# evernote.api.client.Obtenir le magasin
store = client.get_note_store()
#Cahier Evernote.edam.type.ttypes.Obtenez une liste de cahiers
notebook_list = store.listNotebooks()
print(f'Nombre de cahiers: {len(notebook_list)}')
# evernote.edam.type.ttypes.Sortez le cahier
for notebook in notebook_list:
print(f'Nom du cahier: {notebook.name}')
#Préciser les conditions pour les notes à acquérir
filter = NoteFilter()
filter.notebookGuid = notebook.guid #Spécifiez le GUID pour le bloc-notes
#Définir les champs à inclure dans NoteMetadata
spec = NotesMetadataResultSpec()
spec.includeTitle = True
spec.includeCreated = True
spec.includeAttributes = True
#Liste des métadonnées de note Evernote.edam.notestore.ttypes.Obtenir NotesMetadataList
notes_metadata_list = store.findNotesMetadata(
filter,
0, #Spécifiez la position d'index que vous souhaitez obtenir dans la liste qui atteint la condition de décalage
1, #maxNotes Le nombre maximum de notes à récupérer. Obtenez un seul au plus cette fois
spec)
print(f'Nombre de notes dans le carnet: {notes_metadata_list.totalNotes}')
# evernote.edam.notestore.ttypes.Extraire NoteMetadata
for note_meta_data in notes_metadata_list.notes:
print(f'Titre de la note: {note_meta_data.title}')
# evernote.edam.type.ttypes.Obtenir une note
note = store.getNote(
note_meta_data.guid, #Spécifier le GUID pour les notes
True, # withContent
True, # withResourcesData
True, # withResourcesRecognition
True) # withResourcesAlternateData
print(f'Titre: {note.title}')
print(f'Date et heure de création: {datetime.fromtimestamp(note.created / 1000, timezone(timedelta(hours=9)))}')
print(f'Contenu(XHTML): {note.content[0:64]}') #Comme il est long, seuls les 64 premiers caractères sont supprimés
#Extraire les informations du fichier multimédia intégrées ou jointes à un mémo
if note.resources is not None:
# evernote.edam.type.ttypes.Extraire la ressource
for resource in note.resources:
print(f'Nom du fichier de données joint: {resource.attributes.fileName}')
print(f'Type de données: {resource.mime}')
Enregistrez l'exemple de code sous my_notes.py et exécutez-le.
$ python my_notes.py
Nombre de cahiers: 4
Nom du cahier: Todoist
Nombre de notes dans le carnet: 6
Titre de la note: Completed Todoist Tasks
Titre: Completed Todoist Tasks
Date et heure de création: 2017-09-02 09:43:19+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "
Nom du cahier:Données vocales
Nombre de notes dans le carnet: 5
Titre de la note:Message sonore japonais
Titre:Message sonore japonais
Date et heure de création: 2016-08-14 20:03:58+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint:AIUEO.m4a
Type de données: audio/x-m4a
Nom du cahier: webclip
Nombre de notes dans le carnet: 2
Titre de la note:Page d'exemple
Titre:Page d'exemple
Date et heure de création: 2015-03-19 17:34:03+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint: None
Type de données: image/jpeg
Nom du fichier de données joint: None
Type de données: image/png
Nom du cahier:Stockage des données techniques
Nombre de notes dans le carnet: 15
Titre de la note:Matériel Hackason
Titre:Matériel Hackason
Date et heure de création: 2018-02-23 15:26:58+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint: IMG_2741.HEIC
Type de données: image/jpeg
Nom du fichier de données joint: IMG_2618.HEIC
Type de données: image/jpeg
Recommended Posts