evernote business api workshop
DESCRIPTION
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.TRANSCRIPT
Julien Boëdec @boedecPartner Integrations Manager
Evernote Business API Workshop
#EC2013
Evernote Business API Workshop
1 - Understanding Evernote Business
2 - The Evernote API
3 - Code walkthroughs
4 - Partner showcase
#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...)
#EC2013
Understanding Evernote Business
#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
#EC2013
The Evernote API - Endpoints
ThriftThrift
User User StoreStore
Note Note StoreStoreNote Note StoreStoreNote Note StoreStoreNote Note StoreStoreNote Note StoreStoreNote Note StoreStore
https://www.evernote.com/shard/s1
#EC2013
The Evernote API - Endpoints
ThriftThrift
User User StoreStore
BusinessBusinessNote StoreNote Store
PersonalPersonalNote StoreNote Store
#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
#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
business_notestore_thttp_client = THttpClient.THttpClient(business_auth_result.noteStoreUrl)
business_notestore_protocol = TBinaryProtocol.TBinaryProtocol(business_notestore_thttp_client)
business_note_store = NoteStore.Client (business_notestore_protocol, business_notestore_protocol)
#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
my_note = business_note_store.createNote(business_auth_token, my_note)
print "New business note (GUID): %s" % my_note.guid
#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)
# Scroll through the results
print notes_metadata.totalNotes
for note in notes_metadata.notes:
print note.title
#EC2013
Working with notebooks
#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)
for pnb in published_notebooks:
print pnb.name
#EC2013
Related Content
FindRelated()FindRelated()FindRelated()FindRelated()
#EC2013
Related Contentresult_query = NoteStore.RelatedQuery ()
result_query.plainText = "text content for searching related notes"
#result_query.filter
result_spec = NoteStore.RelatedResultSpec ()
result_spec.maxNotes = 3
result_spec.maxNotebooks = 2
result_spec.maxTags = 5
related_result = business_note_store.findRelated (business_auth_token, result_query, result_spec)
# Scroll through the resultsfor note in related_result.notes:
print note.title
#related_result.tags, related_result.notebooks
#EC2013
Provisioning API - Add / RemoveUserStore.inviteToBusiness(string authenticationToken, string emailAddress)
UserStore.removeFromBusiness(string authenticationToken, string emailAddress)
LDAP / ADLDAP / ADLDAP / ADLDAP / AD
#EC2013
Partner showcase
Azendoo
LiveMinutes
UberConference
Zapier
In house development: Ducati Motor
#EC2013
Partner showcase - Azendoo
#EC2013
Partner showcase - LiveMinutes
#EC2013
Partner showcase - UberConference
#EC2013
Partner showcase - Zapier
#EC2013
Partner showcase - Ducati Motor
#EC2013
Get Help
Documentation: dev.evernote.com
Developer forums
Follow us: @evernote_dev
Contact me: [email protected]
Thank you!
Julien Boëdec @boedecPartner Integrations Manager