Supabase
Supabase es una plataforma de código abierto Backend-as-a-Service (BaaS) que ofrece una alternativa sólida a Firebase. Incluye una amplia gama de herramientas para el desarrollo de aplicaciones, entre las que se encuentran una base de datos relacional PostgreSQL, autenticación de usuarios, almacenamiento, suscripciones en tiempo real y funciones Edge. Puedes elegir entre alojarlo todo tú mismo o aprovechar sus servicios gestionados en la nube. A diferencia de Firebase, que utiliza una base de datos NoSQL, Supabase aprovecha las ventajas de SQL a través de PostgreSQL, lo que te permite crear relaciones de datos complejas y ejecutar consultas intrincadas.
Para poder enviar SMS a través de seven, solo tiene que realizar unos pequeños ajustes. El proceso le llevará unos diez minutos y no requiere conocimientos técnicos avanzados.
Requisitos
- Una clave API de seven - se puede crear en el panel de desarrollador
- Supabase
Uso
- 1
Crear secretos
- Abra el panel de control de Supabase y vaya a Edge Functions -> Secrets (Funciones de borde -> Secretos).
- En la sección Add new secrets (Añadir nuevos secretos), cree un par de claves con el nombre SEVEN_API_KEY y su clave API como valor.
- Confirme con Save (Guardar).
- 2
Crear una función de borde
-
Vaya a Edge Functions -> Functions y haga clic en Deploy a new function -> Via Editor.
-
Introduzca un nombre significativo, por ejemplo, sms-hook.
-
Pegue el siguiente código en el 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: `Buenos días, su código de verificación es: ${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 correctamente' }), { status: 200, headers: { 'Content-Type': 'application/json' } }); } return new Response(JSON.stringify({ error: { http_code: response.succcess, message: `Error al enviar el 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: `Error al enviar el SMS: ${JSON.stringify(err)}` } }), { status: 500, headers: { 'Content-Type': 'application/json' } }); } });
-
Haga clic en Deploy function (Implementar función).
-