Supabase
Supabase é uma plataforma Backend-as-a-Service (BaaS) de código aberto que oferece uma alternativa robusta ao Firebase. Ela vem com uma ampla gama de ferramentas para desenvolvimento de aplicações, incluindo um banco de dados relacional PostgreSQL, autenticação de utilizadores, armazenamento, assinaturas em tempo real e Edge Functions. Pode optar por hospedar tudo por conta própria ou aproveitar os serviços de nuvem gerenciados. Ao contrário do Firebase, que utiliza um banco de dados NoSQL, o Supabase aproveita os pontos fortes do SQL por meio do PostgreSQL, permitindo criar relações de dados complexas e executar consultas complexas.
Para poder enviar SMS através do seven, basta fazer alguns ajustes. O trabalho demora cerca de dez minutos e pode ser feito sem grandes conhecimentos técnicos.
Pré-requisitos
- Uma chave de API da seven - pode ser criada no Painel do Desenvolvedor
- Supabase
Uso
- 1
Criar segredos
- Abra o painel Supabase e navegue até Edge Functions -> Secrets
- Na área Add new secrets, crie um par de chaves com o nome SEVEN_API_KEY e a sua chave API como valor
- Confirme com Save
- 2
Criar Edge Function
-
Navegue até Edge Functions -> Functions e clique em Deploy a new function -> Via Editor
-
Introduza um nome significativo, por exemplo, sms-hook
-
Insira o seguinte código no editor:
import 'jsr:@supabase/functions-js/edge-runtime.d.ts'; Deno.serve(async (req) => { try { const payload = await req.json(); const { user, sms } = payload; const body = { text: `Boa tarde, o seu código de verificação é: ${sms.otp}`, to: user.phone }; const resp = await fetch('https://gateway.seven.io/api/sms', { body: JSON.stringify(body), method: 'POST', headers: { Accept: 'application/json', 'X-Api-Key': Deno.env.get('SEVEN_API_KEY') } }); const response = await resp.json(); console.log('response', response); if (response.success === '100') { return new Response(JSON.stringify({ message: 'SMS enviado com sucesso' }), { status: 200, headers: { 'Content-Type': 'application/json' } }); } return new Response(JSON.stringify({ error: { http_code: response.succcess, message: `Falha no envio de SMS: ${response.succcess}.` } }), { status: resp.status, headers: { 'Content-Type': 'application/json' } }); } catch (err) { console.error(err); return new Response(JSON.stringify({ error: { http_code: 500, message: `Falha no envio de SMS: ${JSON.stringify(err)}` } }), { status: 500, headers: { 'Content-Type': 'application/json' } }); } }); -
Clique em Implementar função
-