Começando com a API do Evernote, Node.js, e o azk em 10min

Heitor T. Sergent
4 min readApr 30, 2015

--

(English version of the post here)

Evernote é uma empresa muito popular e impressionante. Eles têm alguns produtos, mas o principal, que tem o mesmo nome da empresa, é um aplicativo de anotações muito robusto. O objetivo dele é ser seu segundo cérebro, e ajudá-lo a organizar a sua vida pessoal com diversos recursos.

Uma das coisas legais que a aplicação possui é uma API pública, que permite a construção de aplicativos em cima dessa infraestrutura. Nesse tutorial, iremos cobrir como começar a utilizar a API utilizando o SDK de JavaScript, a aplicação demo em Node.js e Express, e o azk.

Criando uma credencial no Evernote Sandbox

Antes de começar a desenvolver com as APIs do Evernote, é preciso primeiro registrar uma conta no Sandbox. Dessa forma, podemos testar qualquer chamada da API sem nos preocuparmos em alterar ou excluir qualquer informação pessoal ou do usuário. Vá para o site do Sandbox e crie uma conta:

Após criar a sua conta, crie um novo "notebook" para que possamos ver ele quando executarmos a nossa aplicação demo.

Eu criei um notebook chamado Awesome GIFs

Após isso, vamos criar nossas chaves da API para podermos interagir com ela e o SDK. Vá para a página de documentação do Evernote:

No canto superior direito, clique em "Get an API key". Preencha o formulário para pegar as chaves, o meu ficou parecido com o seguinte:

Clique em "Request Key" e guarde a informação da sua "consumer key" e "consumer secret".

Instale o azk

O azk é uma ferramenta open-source que permite orquestrar ambientes de desenvolvimento em sua própria máquina. Isso significa que você será capaz de executar esse exemplo, mesmo que você não tenha Node.js instalado em sua máquina, e você não terá que se preocupar com problemas em seu ambiente local. Primeiro de tudo, vamos instalar o azk. Se você estiver em um Mac:

# Instale o homebrew
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Instale o brew cask
$ brew install caskroom/cask/brew-cask
# Instale o VirtualBox
$ brew cask install virtualbox
# Instale o azk
$ curl -Ls http://azk.io/install.sh | bash
# Execute o azk agent
$ azk agent start
# Após executar o comando acima, o azk irá pedir um IP da sua máquina virtual. Quando isso acontecer, aperte Enter para usar o valor de IP default.

(Para instruções mais detalhadas, ou caso você esteja rodando Linux, acesse este link)

Agora vamos pegar o aplicativo de exemplo do Evernote no GitHub. Você pode encontrá-lo juntamente com o SDK:

# Pegue o projeto Evernote JavaScript SDK no GitHub
$ git clone https://github.com/heitortsergent/evernote-sdk-js.git
# Acesse a pasta do aplicativo demo
$ cd evernote-sdk-js/sample/express

Lembra de nossas chaves de API que criamos alguns passos atrás? Agora é a hora de usá-las. Já existe um arquivo de configuração de exemplo para elas, então execute:

$ cp .env.sample .env

Abra o arquivo .env e atualize as variáveis "API_CONSUMER_KEY" e "API_CONSUMER_SECRET" com suas chaves.

Agora volte para o terminal e execute:

$ azk start

O que vai acontecer agora é que o azk irá analisar o “Azkfile.js”, baixar as imagens necessárias para executar a nossa aplicação (neste caso, o Node), iniciar um container e executar essa aplicação dentro dele. Quando isso acabar, você deve ver um output semelhante a este:

Abra a URL em “Hostname/url” e você deverá ver o seguinte:

Ao clicar em “Click here”, você irá para a página de autorização com o Evernote, que mostra o nome da aplicação que você registrou quando recebeu as chaves da API. Use suas credenciais da conta Evernote Sandbox, clique em “Authorize”, e agora você deve estar de volta na página principal do demo com as informações sobre seus "Notebooks", e "Token Credentials". ☺

Este é apenas um tutorial de como começar, e agora você tem uma aplicação Node funcional, que autoriza uma sessão com o Evernote, e faz uma chamada para exibir o nome dos "notebooks" na sua conta Sandbox. Se você quiser explorar mais funcionalidades, consulte a documentação do Evernote ou o Evernote App Center para idéias de coisas que você pode construir!

Além disso, se você quiser expandir a aplicação demo, caso você faça alterações deverá executar:

# Se a aplicação estiver rodando
$ azk restart
# Se a aplicação estiver parada
$ azk start

Você também pode acessar seus logs executando:

$ azk logs

Happy hacking! ☺

--

--

Heitor T. Sergent

Community Content Lead @Runscope, Founder of devbeers, former developer evangelist at SendGrid & Azuki, love burgers/coffee/hackathon!