Тарас Семененко, evernote

39
Evernote API Разрабатываем с Тарас Семененко

Upload: diana-dymolazova

Post on 14-Jun-2015

127 views

Category:

Technology


1 download

DESCRIPTION

Лекция "Разрабатываем приложения с API Evernote"

TRANSCRIPT

Page 1: Тарас Семененко, Evernote

Evernote APIEvernote APIРазрабатываем с Разрабатываем с

Тарас СемененкоТарас Семененко

Page 2: Тарас Семененко, Evernote

Что такое Evernote?Что такое Evernote?

Page 3: Тарас Семененко, Evernote

Всё началось с блокнота...

Page 4: Тарас Семененко, Evernote

...стало Вашей дополнительной памятью

Протоколирование совещаний

Хранилище файлов

Сохранение рецептов

Сканирование договоров

Page 5: Тарас Семененко, Evernote

75 млн.всего зарегистрированных

пользователей

2,3 млн.пользователей в России и СНГ

Page 6: Тарас Семененко, Evernote

Продукты Evernote

Penultimate Clearly Skitch Food Hello Web Clipper Peek

Evernote

Page 7: Тарас Семененко, Evernote
Page 8: Тарас Семененко, Evernote
Page 9: Тарас Семененко, Evernote

Приложения, проверенные и работающие с Evernote

Page 10: Тарас Семененко, Evernote

Продвигай своё приложение среди сообщества более75 млн. пользователей

Продвигай своё приложение среди сообщества более75 млн. пользователей

Пользователи Evernote хотят еще больше приложений

Пользователи Evernote хотят еще больше приложений

Page 11: Тарас Семененко, Evernote

Создай своёприложение с Evernote

Создай своёприложение с Evernote

Page 12: Тарас Семененко, Evernote

Два главных фактора перехода на Премиум:

• Когда пользователь использует Evernote на более чем одном устройстве• Когда пользователь использует стороннее приложение для синхронизации с Evernote

Evernote Премиум

Page 13: Тарас Семененко, Evernote

Наша цель

Найти крутые приложения для наших пользователей, чтобы помочь максимально эффективно использовать Evernote

Page 14: Тарас Семененко, Evernote

•Разработчики были успешны

•Продвигать крутые приложения

Мы хотим

Page 15: Тарас Семененко, Evernote

•Галерея

•Промо-баннеры на сайте evernote.com

•промо-баннеры в приложениях для Mac OS и Windows Desktop

•русскоязычный блог, блог на Хабре

•почтовая рассылка, твиттер

•Продвигать крутые приложения

Каналы провижения

Page 16: Тарас Семененко, Evernote
Page 17: Тарас Семененко, Evernote

Evernote API

Page 18: Тарас Семененко, Evernote

Ключевые моменты Evernote API

• Ядро нашего продукта: Evernote API используется более 30,000 внешними разработчиками и нашими собственными приложениями одинаково. (12 млрд. вызовов API делается каждый месяц!)

• Apache Thrift, не Rest API: Мы сами заботимся о соединении, просто вызывайте методы нашего SDK из вашего приложения

• Одинаковая функции: Доступна вся функциональность Evernote (OCR, Files, Audio, etc)

• Все платформы: SDK для всех доступных платформ находится на github.

Page 19: Тарас Семененко, Evernote

Архитектура Evernote

Note StoreNote StoreUser StoreUser Store

Note StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote StoreNote Store

ThriftThrift

Page 20: Тарас Семененко, Evernote

Evernote API: основные функции

•Доступ к пользовательскому или бизнес аккаунту Evernote

•Чтение/Создание/Поиск заметок

•Поиск связанных заметок (FindRelated)

•Напоминания (Reminders)

•Sharing и Business

Page 21: Тарас Семененко, Evernote

Evernote API: авторизация

•OAuth

•По специальному токену (для разработчиков)

Page 22: Тарас Семененко, Evernote

Evernote API: ENML

•<en-note>

•<en-media>

•<en-crypt>

•<en-todo>

Page 23: Тарас Семененко, Evernote

Evernote API: особые заметки

•Привязаны к конретному приложению

•Доступны только для чтения (из основного клиентского приложения)

•Атрибуты: applicationData (4 Кб), contentClass

Page 24: Тарас Семененко, Evernote

Evernote API: эскизы

•На нашем сервере для каждой заметки создается эскиз (изображение размером 300x300)

•Эти эскизы можно использовать в вашем приложении

•Для получения POST-запрос на URL:

https://[sandbox|www].evernote.com/shard/shardID/thm/note/GUID[?size=75]

Page 25: Тарас Семененко, Evernote

•Загрузить SDK

•Начать использовать API

•Создать аккаунт на sandbox.evernote.com

•Получить ключ

Page 26: Тарас Семененко, Evernote

Личный опыт

Evernote API - обработка скриншотов

Page 27: Тарас Семененко, Evernote
Page 28: Тарас Семененко, Evernote
Page 29: Тарас Семененко, Evernote

QuickTime™ and aPhoto - JPEG decompressor

are needed to see this picture.

Page 30: Тарас Семененко, Evernote

Evernote API: получение заметок

my $user_store_url = 'https://' . $evernote_host . '/edam/user'; my $user_store_client = Thrift::HttpClient->new($user_store_url);my $user_store_prot = Thrift::BinaryProtocol->new( $user_store_client );my $user_store = EDAMUserStore::UserStoreClient->new( $user_store_prot, $user_store_prot );my $note_store_url = $user_store->getNoteStoreUrl( $auth_token );my $note_store_client = Thrift::HttpClient->new( $note_store_url );my $note_store_prot = Thrift::BinaryProtocol->new( $note_store_client );my $note_store = EDAMNoteStore::NoteStoreClient->new( $note_store_prot, $note_store_prot );my $notebook = $note_store->getNotebook( $auth_token, $nb_guid );my $filter = new EDAMNoteStore::NoteFilter({notebookGuid => $nb_guid});my $spec = new EDAMNoteStore::NotesMetadataResultSpec({includeTitle => 1, includeAttributes => 1});my $note_metadata_list = $note_store->findNotesMetadata( $auth_token, $filter, $read_notes, 1000, $spec);

Page 31: Тарас Семененко, Evernote

Evernote API: создание заметки

my $note = EDAMTypes::Note->new();$note->title($hash_hex);$note->notebookGuid($nb_guid); my $data = EDAMTypes::Data->new();$data->size(length $image_binary);$data->bodyHash($gd_md5);$data->body($gd_data); my $resource = EDAMTypes::Resource->new();$resource->mime("image/$image_ext");$resource->data($data);$resource->attributes(EDAMTypes::ResourceAttributes->new());$resource->attributes->fileName($filepath);

Page 32: Тарас Семененко, Evernote

Evernote API: создание заметки

$note->content( '<?xml version="1.0" encoding="UTF-8"?>' .               '<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">' . '<en-note><br/><en-media type="image/'.$image_ext.'" hash="' . $gd_hash_hex . '"/></en-note>' );

my $created_note = $note_store->createNote($auth_token, $note);

$note_store->deleteNote($auth_token, $note_guid);

Page 33: Тарас Семененко, Evernote

Новые ресурсы и средства для сообщества разработчиков EvernoteНовые ресурсы и средства для сообщества разработчиков Evernote

Для разработкиДля разработки

Page 34: Тарас Семененко, Evernote

• Переформирован и часто обновляется нашими командами редакторов и технических специалистов

• Документация, примеры и пошаговые руководства для лучшего понимания Evernote API

• Первый шаг в поиске ответов на вопросы и поддержке от сообщества разработчиков Evernote

• Представляет самые новые особенности и функции, доступные для разработчиков

dev.evernote.com

Page 35: Тарас Семененко, Evernote

• Репозиторий, поддерживаемый нашим сообществом разработчиков

• Документация, примеры и пошаговые руководства для лучшего понимания Evernote API

• Первый шаг в поиске ответов на вопросы и поддержке от сообщества разработчиков Evernote

• Представляет самые новые особенности и функции, доступные для разработчиков

SDKs & Samplesgithub.com/evernote

Page 36: Тарас Семененко, Evernote

• Место, где вы можете получить отзыв и оценку относительно использования Evernote API

• Наши команды поддержки активно отвечают и отслеживают изменения в текущих обсуждениях

• Разработчики Evernote и ключевые инженеры также просматривают и отвечают на вопросы.

• В нашем сообществе на форумах более 150 бета тестеров, которым можно предложить протестировать новые интеграции Evernote

EVERNOTEФорумы разработчиков

Page 37: Тарас Семененко, Evernote

Обновления с прошлого года...

• Новые SDK: Ruby, Python, JS (Node/Phonegap/Windows Metro), Android rebuilt, iOS rebuilt

• Обновление документации: dev.evernote.com полностью перестроен и курируется нашим техническим редактором

• Безопасность / Аутентификация: Улучшена реализация механизма oAuth, добавлена обработка прав доступа

• Evernote Business API: Предоставлена более полная информация о нашем новом Business API

• Рост нашей команды: Наша команда опять увеличилась в 3 раза, новые инженеры, дизайнеры и эксперты!

• Руководства для быстрого старта: Полные пошаговые инструкции для iOS, Ruby, Javascript и Python

Page 38: Тарас Семененко, Evernote

Мастер-классы API доступны в Интернете

Вы можете скачать слайды, посмотреть видео и послушать обсуждения на http://bit.ly/144MDjN

Page 39: Тарас Семененко, Evernote

Тарас Семененко

dev.evernote.com

Тарас Семененко

dev.evernote.com

Спасибо!Спасибо!