sendgrid delivered são paulo - heitor

34
Navegando pelas APIs Tuesday, October 1, 13

Upload: heitor-tashiro-sergent

Post on 05-Jul-2015

262 views

Category:

Documents


1 download

DESCRIPTION

Apresentação feita para o evento Sendgrid Delivered Road Show, edição São Paulo. Explicação sobre as APIs do Sendgrid, como elas funcionam e como usá-las.

TRANSCRIPT

Page 1: Sendgrid Delivered São Paulo - Heitor

Navegando pelas APIs

Tuesday, October 1, 13

Page 2: Sendgrid Delivered São Paulo - Heitor

Olá!Meu nome é Heitor Tashiro

Sergent.

[email protected]

@heitortsergent

Tuesday, October 1, 13

Page 3: Sendgrid Delivered São Paulo - Heitor

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

Page 4: Sendgrid Delivered São Paulo - Heitor

Se você tirar uma coisa da palestra

SendGrid > Email Relay

Tuesday, October 1, 13

Page 5: Sendgrid Delivered São Paulo - Heitor

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

Page 6: Sendgrid Delivered São Paulo - Heitor

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

Page 7: Sendgrid Delivered São Paulo - Heitor

Especialmente o tempo do desenvolvedor :)

TEMPO É VALIOSO

Tuesday, October 1, 13

Page 8: Sendgrid Delivered São Paulo - Heitor

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

Page 9: Sendgrid Delivered São Paulo - Heitor

SMTP APIExemplo: Notificação de cobrança

X-SMTPAPI: { "to": ["[email protected]"], "category": "billing_notifications", "unique_args": { "user_id": "12345" }}

Tuesday, October 1, 13

Page 10: Sendgrid Delivered São Paulo - Heitor

SMTP API

Exemplo: Notificação de cobrança (cont)

Tuesday, October 1, 13

Page 11: Sendgrid Delivered São Paulo - Heitor

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

Page 12: Sendgrid Delivered São Paulo - Heitor

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

Page 13: Sendgrid Delivered São Paulo - Heitor

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

Page 14: Sendgrid Delivered São Paulo - Heitor

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

Page 15: Sendgrid Delivered São Paulo - Heitor

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

Page 16: Sendgrid Delivered São Paulo - Heitor

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

Page 17: Sendgrid Delivered São Paulo - Heitor

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

Page 18: Sendgrid Delivered São Paulo - Heitor

•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

Page 19: Sendgrid Delivered São Paulo - Heitor

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

Page 20: Sendgrid Delivered São Paulo - Heitor

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

Page 21: Sendgrid Delivered São Paulo - Heitor

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

Page 22: Sendgrid Delivered São Paulo - Heitor

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

Page 23: Sendgrid Delivered São Paulo - Heitor

{ "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

Page 24: Sendgrid Delivered São Paulo - Heitor

Inbound Parse Webhook

Tuesday, October 1, 13

Page 25: Sendgrid Delivered São Paulo - Heitor

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

Page 26: Sendgrid Delivered São Paulo - Heitor

Demo Time!http://github.com/heitortsergent

Tuesday, October 1, 13

Page 27: Sendgrid Delivered São Paulo - Heitor

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

Page 28: Sendgrid Delivered São Paulo - Heitor

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

Page 29: Sendgrid Delivered São Paulo - Heitor

Pro Tip #3

LEMBRE-SE DOS APPS

Tuesday, October 1, 13

Page 30: Sendgrid Delivered São Paulo - Heitor

Pro Tip #4SUPORTE PODE SUSPENDER

EMAILS

Tuesday, October 1, 13

Page 31: Sendgrid Delivered São Paulo - Heitor

Pro Tip #5TESTE COM LOADER.IO

http://loader.io

Tuesday, October 1, 13

Page 32: Sendgrid Delivered São Paulo - Heitor

Dúvidas?

Tuesday, October 1, 13

Page 33: Sendgrid Delivered São Paulo - Heitor

Recursos adicionais

• Documentação: http://docs.sendgrid.com/

• Bibliotecas oficiais: https://github.com/sendgrid/

• Suporte: http://support.sendgrid.com/

Tuesday, October 1, 13

Page 34: Sendgrid Delivered São Paulo - Heitor

Obrigado!Hora do almoço. :)

[email protected]

@heitortsergent

Tuesday, October 1, 13