SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Разрабатываем с

Evernote API
Тарас Семененко
Что такое Eve rnote ?
Всё началось с блокнота...
...стало Вашей дополнительной памятью
Хранилище файлов

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

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

Сохранение рецептов
2,3 млн .

пользователей в России и СНГ
Продукты Eve rnote
Evernote

Penultimate

Clearly

Skitch

Food

Hello

Web Clipper

Peek
Приложения , проверенные и работающие с Evernote
Пользователи Evernote хотят еще
больше приложений
Продвигай своё приложение среди сообщества более
75 млн. пользователей
Создай своё
приложение с Evernote
приложение с Evernote
Eve rnote
Два главных фактора перехода на Премиум:
Премиум
• Когда пользователь использует Evernote на
более чем одном устройстве
• Когда пользователь использует стороннее
приложение для синхронизации с Evernote
• Когда пользователь использует стороннее
приложение для синхронизации с Evernote
• Когда пользователь использует стороннее
Наша цель
Найти крутые приложения для наших
пользователей, чтобы помочь максимально
эффективно использовать Evernote
Мы хотим
•Разработчики были успешны
•Продвигать крутые приложения
Каналы провижения
• Галерея
• Промо-баннеры на сайте evernote.com
• промо-баннеры в приложениях для Mac OS и Windows Desktop
• русскоязычный блог, блог на Хабре
• почтовая рассылка, твиттер
Eve rnote API
Ключевые моменты Evernote API
• Ядро нашего продукта : Evernote API используется более 30,000 внешними разработчиками и
нашими собственными приложениями одинаково. (12 млрд. вызовов API делается каждый месяц!)
• Apac he Thrift, не Re s t API: Мы сами заботимся о соединении, просто вызывайте методы нашего
SDK из вашего приложения
• Одинаковая функции: Доступна вся функциональность Evernote (OCR, Files, Audio, etc)
• Все платформы : SDK для всех доступных платформ находится на github.
Note Store
Note Store
Note Store
Note Store
Note Store
Note Store
Note Store

Thrift

User Store
Eve rnote API: основные функции
• Доступ к пользовательскому или бизнес аккаунту Evernote
• Чтение/Создание/Поиск заметок
• Поиск связанных заметок (FindRelated)
• Напоминания (Reminders)
• Sharing и Business
Eve rnote API: авторизация
• OAuth
• По специальному токену
(для разработчиков)
Eve rnote API: ENML
• <en-note>
• <en-media>
• <en-crypt>
• <en-todo>
Eve rnote API: особые заметки
• Привязаны к конретному приложению
• Доступны только для чтения (из основного клиентского
приложения)
• Атрибуты: applicationData (4 Кб), contentClass
Eve rnote API: эскизы
• На нашем сервере для каждой заметки создается
эскиз (изображение размером 300x300)
• Эти эскизы можно использовать в вашем приложении
• Для получения POST-запрос на URL:
https://[sandbox|www].evernote.com/shard/shardID/thm/note/GUID[?size=75]
• Создать аккаунт на
sandbox.evernote.com
• Получить ключ

• Загрузить SDK
• Начать использовать API
Evernote API обработка скриншотов
Личный опыт
QuickTime™ and a
Photo - JPEG decompressor
are needed to see this picture.
Eve rnote 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);
Eve rnote 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);
Eve rnote 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);
Для разработки
Новые ресурсы и средства для сообщества разработчиков Evernote
de v.e ve rnote .c om
• Переформирован и часто обновляется нашими
командами редакторов и технических специалистов
• Документация, примеры и пошаговые руководства для
лучшего понимания Evernote API
• Первый шаг в поиске ответов на вопросы и поддержке от
сообщества разработчиков Evernote
• Представляет самые новые особенности и функции,
доступные для разработчиков
S DKs & S ample s
github.c om/ ve rnote
e
github.c om/ ve rnote
e
• Репозиторий, поддерживаемый нашим сообществом
разработчиков
• Документация, примеры и пошаговые руководства для
лучшего понимания Evernote API
• Первый шаг в поиске ответов на вопросы и поддержке от
сообщества разработчиков Evernote
• Представляет самые новые особенности и функции,
доступные для разработчиков
EVERNOTE
Форумы разработчиков
Форумы разработчиков
• Место, где вы можете получить отзыв и оценку
относительно использования Evernote API
• Наши команды поддержки активно отвечают и
отслеживают изменения в текущих обсуждениях
• Разработчики Evernote и ключевые инженеры также
просматривают и отвечают на вопросы.
• В нашем сообществе на форумах более 150 бета
тестеров, которым можно предложить протестировать
новые интеграции Evernote
Обновления с прошлого года...
• Новые SDK: Ruby, Python, JS (Node/Phonegap/Windows Metro), Android rebuilt, iOS rebuilt
• Обновление документации : dev.evernote.com полностью перестроен и курируется нашим
техническим редактором
• Безопасность / Аутентификация : Улучшена реализация механизма oAuth, добавлена
обработка прав доступа
• Eve rnote Bus ine s s API: Предоставлена более полная информация о нашем новом Business API
• Рост нашей команды : Наша команда опять увеличилась в 3 раза, новые инженеры, дизайнеры и
эксперты!
• Руководства для быстрого старта : Полные пошаговые инструкции для iOS, Ruby, Javascript и
Python
Мастер-классы API доступны в Интернете
Вы можете скачать слайды, посмотреть видео и послушать обсуждения на http://bit.ly/144MDjN
Спасибо !
Тарас Семененко
dev.evernote.com

Weitere ähnliche Inhalte

Ähnlich wie Тарас Семененко, Evernote

Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRoman Dvornov
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими рукамиRoman Dvornov
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...SQALab
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...QA Club Minsk
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...ISsoft
 
Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet Eugene Agafonov
 
Кросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNextКросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNextGoSharp
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...COMAQA.BY
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Cgevent 2012
Cgevent 2012Cgevent 2012
Cgevent 2012CineSoft
 
Сущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreСущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreTatyanazaxarova
 
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Ontico
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...Mirantis IT Russia
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проектаMedia Gorod
 

Ähnlich wie Тарас Семененко, Evernote (20)

Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментов
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
RealSpeaker Ru
RealSpeaker RuRealSpeaker Ru
RealSpeaker Ru
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
 
Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet
 
Кросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNextКросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNext
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Cgevent 2012
Cgevent 2012Cgevent 2012
Cgevent 2012
 
test
testtest
test
 
Сущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreСущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCore
 
YaC 2013 Notes
YaC 2013 NotesYaC 2013 Notes
YaC 2013 Notes
 
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...
OpenStack Murano: управления приложениями в облаке на платформах Linux, Solar...
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
 
Maleev
MaleevMaleev
Maleev
 

Mehr von Diana Dymolazova

Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковОнлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковDiana Dymolazova
 
Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Diana Dymolazova
 
Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Diana Dymolazova
 
В какие игры играют команды
В какие игры играют командыВ какие игры играют команды
В какие игры играют командыDiana Dymolazova
 
Проектирование мобильного приложения
Проектирование мобильного приложенияПроектирование мобильного приложения
Проектирование мобильного приложенияDiana Dymolazova
 
Как быть счастливым в работе
Как быть счастливым в работеКак быть счастливым в работе
Как быть счастливым в работеDiana Dymolazova
 
SCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаSCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаDiana Dymolazova
 
Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Diana Dymolazova
 
Работа в игровой индустрии: профессия или призвание?
Работа в игровой индустрии: профессия или призвание?Работа в игровой индустрии: профессия или призвание?
Работа в игровой индустрии: профессия или призвание?Diana Dymolazova
 
Стартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаСтартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаDiana Dymolazova
 
Импотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымИмпотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымDiana Dymolazova
 
Как заставить работодателя работать на тебя
Как заставить работодателя работать на тебяКак заставить работодателя работать на тебя
Как заставить работодателя работать на тебяDiana Dymolazova
 
Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Diana Dymolazova
 
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Diana Dymolazova
 
Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Diana Dymolazova
 
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Diana Dymolazova
 
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюAndroid и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюDiana Dymolazova
 
Enterprise-приложения: Web против Objective C
Enterprise-приложения:  Web против Objective CEnterprise-приложения:  Web против Objective C
Enterprise-приложения: Web против Objective CDiana Dymolazova
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас домаDiana Dymolazova
 
Современные технологии в R&D проектах
Современные технологии в R&D проектахСовременные технологии в R&D проектах
Современные технологии в R&D проектахDiana Dymolazova
 

Mehr von Diana Dymolazova (20)

Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудниковОнлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
Онлайн-взаимодействие: вовлечение, исследование и обучение сотрудников
 
Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2Рабочая коммуникация. Как общаться с коллегами? ч.2
Рабочая коммуникация. Как общаться с коллегами? ч.2
 
Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1Рабочая коммуникация. Как общаться с коллегами? ч.1
Рабочая коммуникация. Как общаться с коллегами? ч.1
 
В какие игры играют команды
В какие игры играют командыВ какие игры играют команды
В какие игры играют команды
 
Проектирование мобильного приложения
Проектирование мобильного приложенияПроектирование мобильного приложения
Проектирование мобильного приложения
 
Как быть счастливым в работе
Как быть счастливым в работеКак быть счастливым в работе
Как быть счастливым в работе
 
SCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часаSCRUM: Как полететь в космос за полтора часа
SCRUM: Как полететь в космос за полтора часа
 
Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?Работа в офисе или Фриланс. Что выбрать?
Работа в офисе или Фриланс. Что выбрать?
 
Работа в игровой индустрии: профессия или призвание?
Работа в игровой индустрии: профессия или призвание?Работа в игровой индустрии: профессия или призвание?
Работа в игровой индустрии: профессия или призвание?
 
Стартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релизаСтартап внутри корпорации или как дожить до второго релиза
Стартап внутри корпорации или как дожить до второго релиза
 
Импотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должнымИмпотека или как перестать быть кому-то должным
Импотека или как перестать быть кому-то должным
 
Как заставить работодателя работать на тебя
Как заставить работодателя работать на тебяКак заставить работодателя работать на тебя
Как заставить работодателя работать на тебя
 
Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.
 
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
Современная защита виртуальных серверов. Секреты мгновенного восстановления п...
 
Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?Карьера через руководителя: чего они хотят?
Карьера через руководителя: чего они хотят?
 
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
Переиспользование кода и компонентов при разработке Windows 8 и Windows Phone...
 
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применениюAndroid и iOS приложение на .NET за 24 часа. Инструкция по применению
Android и iOS приложение на .NET за 24 часа. Инструкция по применению
 
Enterprise-приложения: Web против Objective C
Enterprise-приложения:  Web против Objective CEnterprise-приложения:  Web против Objective C
Enterprise-приложения: Web против Objective C
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас дома
 
Современные технологии в R&D проектах
Современные технологии в R&D проектахСовременные технологии в R&D проектах
Современные технологии в R&D проектах
 

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

  • 3. Всё началось с блокнота...
  • 4. ...стало Вашей дополнительной памятью Хранилище файлов Протоколирование совещаний Сканирование договоров Сохранение рецептов
  • 5. 2,3 млн . пользователей в России и СНГ
  • 7.
  • 8.
  • 9. Приложения , проверенные и работающие с Evernote
  • 10. Пользователи Evernote хотят еще больше приложений Продвигай своё приложение среди сообщества более 75 млн. пользователей
  • 11. Создай своё приложение с Evernote приложение с Evernote
  • 12. Eve rnote Два главных фактора перехода на Премиум: Премиум • Когда пользователь использует Evernote на более чем одном устройстве • Когда пользователь использует стороннее приложение для синхронизации с Evernote • Когда пользователь использует стороннее приложение для синхронизации с Evernote • Когда пользователь использует стороннее
  • 13. Наша цель Найти крутые приложения для наших пользователей, чтобы помочь максимально эффективно использовать Evernote
  • 14. Мы хотим •Разработчики были успешны •Продвигать крутые приложения
  • 15. Каналы провижения • Галерея • Промо-баннеры на сайте evernote.com • промо-баннеры в приложениях для Mac OS и Windows Desktop • русскоязычный блог, блог на Хабре • почтовая рассылка, твиттер
  • 16.
  • 18. Ключевые моменты Evernote API • Ядро нашего продукта : Evernote API используется более 30,000 внешними разработчиками и нашими собственными приложениями одинаково. (12 млрд. вызовов API делается каждый месяц!) • Apac he Thrift, не Re s t API: Мы сами заботимся о соединении, просто вызывайте методы нашего SDK из вашего приложения • Одинаковая функции: Доступна вся функциональность Evernote (OCR, Files, Audio, etc) • Все платформы : SDK для всех доступных платформ находится на github.
  • 19. Note Store Note Store Note Store Note Store Note Store Note Store Note Store Thrift User Store
  • 20. Eve rnote API: основные функции • Доступ к пользовательскому или бизнес аккаунту Evernote • Чтение/Создание/Поиск заметок • Поиск связанных заметок (FindRelated) • Напоминания (Reminders) • Sharing и Business
  • 21. Eve rnote API: авторизация • OAuth • По специальному токену (для разработчиков)
  • 22. Eve rnote API: ENML • <en-note> • <en-media> • <en-crypt> • <en-todo>
  • 23. Eve rnote API: особые заметки • Привязаны к конретному приложению • Доступны только для чтения (из основного клиентского приложения) • Атрибуты: applicationData (4 Кб), contentClass
  • 24. Eve rnote API: эскизы • На нашем сервере для каждой заметки создается эскиз (изображение размером 300x300) • Эти эскизы можно использовать в вашем приложении • Для получения POST-запрос на URL: https://[sandbox|www].evernote.com/shard/shardID/thm/note/GUID[?size=75]
  • 25. • Создать аккаунт на sandbox.evernote.com • Получить ключ • Загрузить SDK • Начать использовать API
  • 26. Evernote API обработка скриншотов Личный опыт
  • 27.
  • 28.
  • 29. QuickTime™ and a Photo - JPEG decompressor are needed to see this picture.
  • 30. Eve rnote 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);
  • 31. Eve rnote 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);
  • 32. Eve rnote 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);
  • 33. Для разработки Новые ресурсы и средства для сообщества разработчиков Evernote
  • 34. de v.e ve rnote .c om • Переформирован и часто обновляется нашими командами редакторов и технических специалистов • Документация, примеры и пошаговые руководства для лучшего понимания Evernote API • Первый шаг в поиске ответов на вопросы и поддержке от сообщества разработчиков Evernote • Представляет самые новые особенности и функции, доступные для разработчиков
  • 35. S DKs & S ample s github.c om/ ve rnote e github.c om/ ve rnote e • Репозиторий, поддерживаемый нашим сообществом разработчиков • Документация, примеры и пошаговые руководства для лучшего понимания Evernote API • Первый шаг в поиске ответов на вопросы и поддержке от сообщества разработчиков Evernote • Представляет самые новые особенности и функции, доступные для разработчиков
  • 36. EVERNOTE Форумы разработчиков Форумы разработчиков • Место, где вы можете получить отзыв и оценку относительно использования Evernote API • Наши команды поддержки активно отвечают и отслеживают изменения в текущих обсуждениях • Разработчики Evernote и ключевые инженеры также просматривают и отвечают на вопросы. • В нашем сообществе на форумах более 150 бета тестеров, которым можно предложить протестировать новые интеграции Evernote
  • 37. Обновления с прошлого года... • Новые SDK: Ruby, Python, JS (Node/Phonegap/Windows Metro), Android rebuilt, iOS rebuilt • Обновление документации : dev.evernote.com полностью перестроен и курируется нашим техническим редактором • Безопасность / Аутентификация : Улучшена реализация механизма oAuth, добавлена обработка прав доступа • Eve rnote Bus ine s s API: Предоставлена более полная информация о нашем новом Business API • Рост нашей команды : Наша команда опять увеличилась в 3 раза, новые инженеры, дизайнеры и эксперты! • Руководства для быстрого старта : Полные пошаговые инструкции для iOS, Ruby, Javascript и Python
  • 38. Мастер-классы API доступны в Интернете Вы можете скачать слайды, посмотреть видео и послушать обсуждения на http://bit.ly/144MDjN

Hinweis der Redaktion

  1. Evernote is a family of products that help you remember everything.
  2. We have hundreds of apps in the Evernote Trunk - http://trunk.evernote.com/
  3. dec 10: 5.5 dec 11: 20
  4. Evernote has apps for all platforms and is a great way for remembering everything. It is also a robust cloud service and platform for any app that wants to store useful information.
  5. Before we talk more about the architecture of the SDK, from an API standpoint these are the two concepts you should know about. This is a very simple representation. The note store is designed to scale. There are fixed number of user per note store. You can think of this as two different logical entities. The note store is where all your notes and information related to the notes is stored. USerStore stores all the user info like email.