Evernote Business makes the ideas, research and expertise of your team easily discoverable, creating an open, productive and smarter workplace. This workshop will cover a walkthrough of the Evernote Business API and how we work with 3rd party integrations.
2. #EC2013
Evernote Business API Workshop
1 - Understanding Evernote Business
2 - The Evernote API
3 - Code walkthroughs
4 - Partner showcase
3. #EC2013
Understanding Evernote Business
An extension of Evernote
Knowledge sharing and discovery
Data owned by the business
Works with all our core products (Evernote desktop, iOS, Android, Web
Clipper...)
5. #EC2013
The Evernote API
Our core product: The Evernote API is used for
external developers and our internal apps alike. 12
Billion API calls are made every month!
Same functions: All the functionality available in
Evernote (OCR, Files, Audio, etc)
Every platform: We have SDKs for almost every
platform on Github.
Apache Thrift, not REST: We take care of the
connection, just make calls to our SDK in your
application
7. #EC2013
The Evernote API - Endpoints
ThriftThrift
UserUser
StoreStore
BusinessBusiness
Note StoreNote Store
PersonalPersonal
Note StoreNote Store
8. #EC2013
Code walkthroughs
Getting started - connecting to the business account
Creating a note
Searching for notes in the business
Working with notebooks
Related content
Provisioning API
9. #EC2013
Connecting to the business account
# Get information about the user
ourUser = user_store.getUser(auth_token)
# Is the user part of a business?
if ourUser.businessUserInfo:
print "Business name: " + ourUser.businessUserInfo.businessName
# Connecting to the Evernote Business account
business_auth_result = user_store.authenticateToBusiness(auth_token)
business_auth_token = business_auth_result.authenticationToken
10. #EC2013
Creating a note
# Creating a note
my_note = Types.Note()
my_note.title = "I'm a test note!"
my_note.notebookGuid = "8d382c0b-08f3-46a5-9356-bb28fb0f4eb6"
content = '<?xml version="1.0" encoding="UTF-8"?>'
content += '<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">'
content += "<en-note>I'm the body of a test note!</en-note>"
my_note.content = content
# Create a new note in the business notebook
# if modifying an existing Note, call updateNote here
11. #EC2013
Searching for notes
# Define the filter to search with
filter = NoteStore.NoteFilter()
filter.words = "EC3"
# Define the data the service should return
result_spec = NoteStore.NotesMetadataResultSpec ()
result_spec.includeTitle = True
# Search
notes_metadata = business_note_store.findNotesMetadata (business_auth_token, filter, 0, 50, result_spec)
13. #EC2013
Working with notebooks
#Listing the notebooks a user has joined
linked_notebooks = note_store.listLinkedNotebooks(auth_token)
for lnb in linked_notebooks:
if lnb.businessId:
print lnb.shareName
# Listing the notebooks published to the business
published_notebooks = business_note_store.listPublishedBusinessNotebooks(business_auth_token)
totalNotes The number of notes in the larger set. This can be used to calculate how many notes are "after" this note in the set. (I.e. remaining = totalNotes - (startIndex + notes.length) ) Search in all the business notes you can access but haven’t necessarily joined::::: NoteFilter.includeAllReadableNotebooks = true
Related context: different from a search, discovering content you forgot / didn’t know about
First stab at a higher level of permission. Not a user’s data but the direct management of a business