SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Navegando pelas APIs
Tuesday, October 1, 13
Olá!
Meu nome é Heitor Tashiro
Sergent.
heitor@sendgrid.com
@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 API
Exemplo: Notificação de cobrança
X-SMTPAPI: {
"to": ["heitor@sendgrid.com"],
"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 API
X-SMTPAPI: {
"to": ["carlos@foo.com","carla@baz.com"],
"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 API
Envie 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 HTTP
curl -X POST http://sendgrid.com/api/mail.send.json 
-d “to=carlos@example.com.br” 
-d “from=contato@myapp.com.br” 
-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.
WEB
HOOK
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":"carlos@exemplo.com.br",
"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 Value
MX 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":"meuapp@meudominio.com.br",
"from":"Heitor <heitor@sendgrid.com>",
"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/localtunnel
http://requestb.in/
Tuesday, October 1, 13
Pro Tip #3
LEMBRE-SE DOS APPS
Tuesday, October 1, 13
Pro Tip #4
SUPORTE PODE SUSPENDER
EMAILS
Tuesday, October 1, 13
Pro Tip #5
TESTE 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. :)
heitor@sendgrid.com
@heitortsergent
Tuesday, October 1, 13

Más contenido relacionado

Destacado

Buku analisis kebutuhan kelompok kerja guru
Buku analisis kebutuhan kelompok kerja guruBuku analisis kebutuhan kelompok kerja guru
Buku analisis kebutuhan kelompok kerja guru
Jamaludin ..
 
งานที่ 9 16
งานที่ 9 16งานที่ 9 16
งานที่ 9 16
Pop Nattakarn
 
交點高雄Vol.7 - 乾鑫 - 品牌實驗
交點高雄Vol.7 - 乾鑫 - 品牌實驗交點高雄Vol.7 - 乾鑫 - 品牌實驗
交點高雄Vol.7 - 乾鑫 - 品牌實驗
交點
 
поздоровлення
поздоровленняпоздоровлення
поздоровлення
shchsr6415164
 
交點台北Vol.16 - 陳柏儒 - 群眾的力量
交點台北Vol.16 - 陳柏儒 - 群眾的力量交點台北Vol.16 - 陳柏儒 - 群眾的力量
交點台北Vol.16 - 陳柏儒 - 群眾的力量
交點
 
Tarea guamanquispe
Tarea guamanquispeTarea guamanquispe
Tarea guamanquispe
Anitagua
 

Destacado (18)

Aj ami kothao jabo na
Aj ami kothao jabo naAj ami kothao jabo na
Aj ami kothao jabo na
 
Buku analisis kebutuhan kelompok kerja guru
Buku analisis kebutuhan kelompok kerja guruBuku analisis kebutuhan kelompok kerja guru
Buku analisis kebutuhan kelompok kerja guru
 
Caracalas and associates, llc
Caracalas and associates, llcCaracalas and associates, llc
Caracalas and associates, llc
 
งานที่ 9 16
งานที่ 9 16งานที่ 9 16
งานที่ 9 16
 
Listado transporte turistico_terrestre
Listado transporte turistico_terrestreListado transporte turistico_terrestre
Listado transporte turistico_terrestre
 
Utq 202
Utq 202Utq 202
Utq 202
 
Malla vertical sistemas
Malla vertical sistemasMalla vertical sistemas
Malla vertical sistemas
 
世界報紙頭條1007
世界報紙頭條1007世界報紙頭條1007
世界報紙頭條1007
 
交點高雄Vol.7 - 乾鑫 - 品牌實驗
交點高雄Vol.7 - 乾鑫 - 品牌實驗交點高雄Vol.7 - 乾鑫 - 品牌實驗
交點高雄Vol.7 - 乾鑫 - 品牌實驗
 
поздоровлення
поздоровленняпоздоровлення
поздоровлення
 
Dia1 rosa
Dia1 rosaDia1 rosa
Dia1 rosa
 
交點台北Vol.16 - 陳柏儒 - 群眾的力量
交點台北Vol.16 - 陳柏儒 - 群眾的力量交點台北Vol.16 - 陳柏儒 - 群眾的力量
交點台北Vol.16 - 陳柏儒 - 群眾的力量
 
ADGEBS | TÜRKİYE "PERFORMANS YÖNETİMİ"
ADGEBS | TÜRKİYE "PERFORMANS YÖNETİMİ"ADGEBS | TÜRKİYE "PERFORMANS YÖNETİMİ"
ADGEBS | TÜRKİYE "PERFORMANS YÖNETİMİ"
 
ADPEMA NOTICIAS JULHO/2014
ADPEMA NOTICIAS JULHO/2014ADPEMA NOTICIAS JULHO/2014
ADPEMA NOTICIAS JULHO/2014
 
Tarea guamanquispe
Tarea guamanquispeTarea guamanquispe
Tarea guamanquispe
 
Plano 21 nov_etse
Plano 21 nov_etsePlano 21 nov_etse
Plano 21 nov_etse
 
Presentación UOC Alumni - Ecommerce
Presentación UOC Alumni - EcommercePresentación UOC Alumni - Ecommerce
Presentación UOC Alumni - Ecommerce
 
Pag 3 ok
Pag 3 okPag 3 ok
Pag 3 ok
 

Similar a Sendgrid Delivered São Paulo - Heitor

Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.
Joao Livio
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
Henrique Lima
 

Similar a Sendgrid Delivered São Paulo - Heitor (20)

Cloud search avancado
Cloud search avancadoCloud search avancado
Cloud search avancado
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
O get and post para etico hacker
O get and post para etico hackerO get and post para etico hacker
O get and post para etico hacker
 
Design de APIs REST
Design de APIs RESTDesign de APIs REST
Design de APIs REST
 
Novidades no Deployment do Office 365
Novidades no Deployment do Office 365Novidades no Deployment do Office 365
Novidades no Deployment do Office 365
 
Python 08
Python 08Python 08
Python 08
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Tony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics ArtifactsTony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics Artifacts
 
GraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveisGraphQL - APIs mais robustas e flexíveis
GraphQL - APIs mais robustas e flexíveis
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
HTML5 e CSS3 - Recursos mais utilizados
HTML5 e CSS3 - Recursos mais utilizadosHTML5 e CSS3 - Recursos mais utilizados
HTML5 e CSS3 - Recursos mais utilizados
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 

Sendgrid Delivered São Paulo - Heitor

  • 2. Olá! Meu nome é Heitor Tashiro Sergent. heitor@sendgrid.com @heitortsergent Tuesday, October 1, 13
  • 3. 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
  • 4. Se você tirar uma coisa da palestra SendGrid > Email Relay Tuesday, October 1, 13
  • 5. 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
  • 6. 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
  • 7. Especialmente o tempo do desenvolvedor :) TEMPO É VALIOSO Tuesday, October 1, 13
  • 8. 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
  • 9. SMTP API Exemplo: Notificação de cobrança X-SMTPAPI: { "to": ["heitor@sendgrid.com"], "category": "billing_notifications", "unique_args": { "user_id": "12345" } } Tuesday, October 1, 13
  • 10. SMTP API Exemplo: Notificação de cobrança (cont) Tuesday, October 1, 13
  • 11. SMTP API X-SMTPAPI: { "to": ["carlos@foo.com","carla@baz.com"], "sub": { "-intro-": ["-greetGuy-", "-greetGirl-"], "-name-": ["Carlos", "Carla"], }, "section": { "-greetGuy-": "Sr. -name-", "-greetGirl-": "Sra. -name-" } } Tuesday, October 1, 13
  • 12. 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
  • 13. Web API Envie 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
  • 14. Web API Web API endpoints tem o seguinte formato: https://sendgrid.com/api/<MODULE>.<ACTION>.<FORMAT> Exemplo: Enviar email por HTTP curl -X POST http://sendgrid.com/api/mail.send.json -d “to=carlos@example.com.br” -d “from=contato@myapp.com.br” -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
  • 15. 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
  • 16. 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
  • 17. 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. WEB HOOK Tuesday, October 1, 13
  • 18. •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
  • 19. Qual o formato de uma notificação? { "email":"carlos@exemplo.com.br", "timestamp": 1322000095, "unique_arg":"algum argumento", "category":"billing_notification", "event":"delivered" } Event Notification Webhook Tuesday, October 1, 13
  • 20. 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
  • 21. 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
  • 22. 2.Aponte o MX record do seu domínio para: Type Value MX 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
  • 23. { "to":"meuapp@meudominio.com.br", "from":"Heitor <heitor@sendgrid.com>", "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
  • 25. 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
  • 27. 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
  • 28. Pro Tip #2 TESTE PARA WEBHOOKS • http://hookdebug.sendgrid.com • LocalTunnel v2 • RequestB.in • ngrok Algumas ferramentas: https://github.com/progrium/localtunnel http://requestb.in/ Tuesday, October 1, 13
  • 29. Pro Tip #3 LEMBRE-SE DOS APPS Tuesday, October 1, 13
  • 30. Pro Tip #4 SUPORTE PODE SUSPENDER EMAILS Tuesday, October 1, 13
  • 31. Pro Tip #5 TESTE COM LOADER.IO http://loader.io Tuesday, October 1, 13
  • 33. Recursos adicionais • Documentação: http://docs.sendgrid.com/ • Bibliotecas oficiais: https://github.com/sendgrid/ • Suporte: http://support.sendgrid.com/ Tuesday, October 1, 13
  • 34. Obrigado! Hora do almoço. :) heitor@sendgrid.com @heitortsergent Tuesday, October 1, 13