Navegando pelas APIs
Tuesday, October 1, 13
Olá!Meu nome é Heitor Tashiro
Sergent.
@heitortsergent
Tuesday, October 1, 13
Agora você já sabe...
• Provedor SMTP com infra-estrutura na nuvem
• Extremamente escalonável
• Foco na entregabilidade
• Analytics nos emails que você envia
Tuesday, October 1, 13
Se você tirar uma coisa da palestra
SendGrid > Email Relay
Tuesday, October 1, 13
Quais APIs o Sendgrid oferece?
API
• Subuser API
• Credentials API
• Event Webhook
• Inbound Parse Webhook
• SMTP API
• Web API
• Marketing API
• Reseller API
APIs Overview
Tuesday, October 1, 13
Q: Porque eu deveria me importar com as APIs?
A: Existem muitas razões, mas principalmente:
• Reduzir complexidade de código
• Analytics e tracking detalhado
• Menor consumo de recursos
APIs Overview
Tuesday, October 1, 13
Especialmente o tempo do desenvolvedor :)
TEMPO É VALIOSO
Tuesday, October 1, 13
SMTP API
Header SMPT customizado contendo instruções de como processar seu email
Adicione informações extra, filtros e manipuladores:
• Definir múltiplos recipientes• Substituições de texto• Categorias• Argumentos únicos / Identificadores
X-SMTPAPI: { ... }
Tuesday, October 1, 13
SMTP APIExemplo: Notificação de cobrança
X-SMTPAPI: { "to": ["[email protected]"], "category": "billing_notifications", "unique_args": { "user_id": "12345" }}
Tuesday, October 1, 13
SMTP API
Exemplo: Notificação de cobrança (cont)
Tuesday, October 1, 13
SMTP APIX-SMTPAPI: { "to": ["[email protected]","[email protected]"], "sub": { "-intro-": ["-greetGuy-", "-greetGirl-"], "-name-": ["Carlos", "Carla"], }, "section": { "-greetGuy-": "Sr. -name-", "-greetGirl-": "Sra. -name-" }}
Tuesday, October 1, 13
SMTP API
-intro-,
Obrigado por terem vindo ao Sendgrid Delivered em São Paulo! Foi um prazer conhecer vocês.
Atenciosamente,Heitor
Tuesday, October 1, 13
Web APIEnvie email ou manipule configurações via HTTP
(Quase) Tudo que você pode fazer pelo Dashboard do Sendgrid, também é possível pela Web API.
• Editar informações do perfil / conta
• Adicionar novos Parse endpoints
• Pegar estatísticas
• Gerenciar listas (Bounces, Blocks, Unsubscribes, etc.)
• Adicionar / Remover filtros (apps)
Tuesday, October 1, 13
Web API
Web API endpoints tem o seguinte formato:https://sendgrid.com/api/<MODULE>.<ACTION>.<FORMAT>
Exemplo: Enviar email por HTTPcurl -X POST http://sendgrid.com/api/mail.send.json \ -d “[email protected]” \ -d “[email protected]” \ -d “subject=hello world email” \ -d “text=algum texto no corpo do email” \ -d “api_user=your_sendgrid_username” \ -d “api_key=your_sendgrid_key”
Tuesday, October 1, 13
Web API vs. SMTP API
Q: Porque eu usaria a Web API ao invés da SMTP API?(Não se preocupe, essa pergunta é muito comum)
A: Normalmente você não precisará. A não ser que....
• Seu ISP esteja bloqueando portas SMTP
• Exista uma alta latência entre seu aplicativo e Sendgrid
• Dificuldade pra instalar/configurar drivers SMTP
• Simplicidade para desenvolvedores
Tuesday, October 1, 13
Marketing API
Acesse o aplicativo newsletter do Sendgrid via API
Você pode criar e gerenciar...
• Marketing emails
• Listas de recipientes
• Identidade de envio
• Datas de envio programadas
https://sendgrid.com/api/newsletter/<ACTION>.<FORMAT>
Tuesday, October 1, 13
Webhooks
Q: O que são Webhooks?
A: Webhooks são como chamadas a API ao inverso; você nos diz para onde os dados devem ir, e nós fazemos o envio.
WEBHOOK
Tuesday, October 1, 13
•Processed•Dropped•Delivered•Bounced
•Opened•Clicked•Spam Reported•Unsubscribed
POST
Sua aplicação recebe um evento POST
(como submeter um formulário)
Recebe notificações quando eventos do Sendgrid acontecem
Event Notification Webhook
Tuesday, October 1, 13
Qual o formato de uma notificação?
{ "email":"[email protected]", "timestamp": 1322000095, "unique_arg":"algum argumento", "category":"billing_notification", "event":"delivered"}
Event Notification Webhook
Tuesday, October 1, 13
Q: Porque eu usaria o event webhook?
A: Use para incrementar sua funcionalidade de email atual, e ganhar insight sobre seus usuários.
Event Notification Webhook
Tuesday, October 1, 13
Permite a você, receber emails dentro de sua aplicação
EMAIL JSON
1. Usuário envia email para *@seuapp.com.br
2. Sendgrid ‘parseia’ o email e anexos
3. Você recebe um JSON POST na sua aplicação
Inbound Parse Webhook
Tuesday, October 1, 13
2. Aponte o MX record do seu domínio para:
Type ValueMX 0 mx.sendgrid.net
3. Retorne um status code 200 de sua aplicação
1. Configure seu hostname e URL
http://sendgrid.com/developer/reply
Inbound Parse Webhook
Tuesday, October 1, 13
{ "to":"[email protected]", "from":"Heitor <[email protected]>", "subject":"SendGrid <3s Brasil", "text":"Algum texto no corpo do email", "html":"Suporta <em>HTML</em> também.", "attachments": 1, // ...}
Inbound Parse Webhook
Tuesday, October 1, 13
Inbound Parse Webhook
Tuesday, October 1, 13
Additional APIs
Subuser API• Gerencie e controle contas de subusers.
Reseller API• Para parceiros que queiram integrar a plataforma diretamente.
Multiple Credentials API• Adicione novas credenciais a sua conta
Tuesday, October 1, 13
Demo Time!http://github.com/heitortsergent
Tuesday, October 1, 13
Pro Tip #1
MÉTRICAS NÃO-OFICIAIS DE
EVENTOS
Delivered - Opened = Tempo para leitura
Opened - Last Click = Tempo gasto durante a leitura
Processed - Delivered = Delay do Sendgrid
Exemplo:
Tuesday, October 1, 13
Pro Tip #2
TESTE PARA WEBHOOKS
• http://hookdebug.sendgrid.com• LocalTunnel v2• RequestB.in• ngrok
Algumas ferramentas:
https://github.com/progrium/localtunnelhttp://requestb.in/
Tuesday, October 1, 13
Pro Tip #3
LEMBRE-SE DOS APPS
Tuesday, October 1, 13
Pro Tip #4SUPORTE PODE SUSPENDER
EMAILS
Tuesday, October 1, 13
Pro Tip #5TESTE COM LOADER.IO
http://loader.io
Tuesday, October 1, 13
Dúvidas?
Tuesday, October 1, 13
Recursos adicionais
• Documentação: http://docs.sendgrid.com/
• Bibliotecas oficiais: https://github.com/sendgrid/
• Suporte: http://support.sendgrid.com/
Tuesday, October 1, 13
Obrigado!Hora do almoço. :)
@heitortsergent
Tuesday, October 1, 13