Supabase
Supabase ist eine Open-Source-Backend-as-a-Service-Plattform (BaaS), die eine robuste Alternative zu Firebase darstellt. Sie umfasst eine Vielzahl von Tools für die App-Entwicklung, darunter eine relationale PostgreSQL-Datenbank, Benutzerauthentifizierung, Speicherplatz, Echtzeit-Abonnements und Edge-Funktionen. Sie können wählen, ob Sie alles selbst hosten oder die verwalteten Cloud-Dienste nutzen möchten. Im Gegensatz zu Firebase, das eine NoSQL-Datenbank verwendet, nutzt Supabase die Stärken von SQL durch PostgreSQL, sodass Sie komplexe Datenbeziehungen erstellen und komplizierte Abfragen ausführen können.
Um SMS über seven versenden zu können, müssen Sie lediglich ein paar Anpassungen machen. Der Arbeitsaufwand beträgt etwa zehn Minuten und kann auch ohne weitreichende technische Kenntnisse erfolgen.
Voraussetzungen
- Ein API-Schlüssel von seven - kann im Entwickler-Dashboard erstellt werden
- Supabase
Verwendung
- 1
Secrets erstellen
- Öffnen Sie das Supabase-Dashboard und navigieren Sie zu Edge Functions -> Secrets
- Im Bereich Add new secrets erstellen Sie ein Schlüsselpaar mit dem Namen SEVEN_API_KEY und Ihrem API-Schlüssel als Wert
- Bestätigen Sie mit Save
- 2
Edge Function erstellen
- Navigieren Sie zu Edge Functions -> Functions und klicken Sie auf Deploy a new function -> Via Editor
- Geben Sie einen aussagekräftigen Namen ein, z.B. sms-hook
- Fügen Sie den folgenden Code in den Editor ein:
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: `Guten Tag, Ihr Verifizierungscode lautet: ${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 erfolgreich versandt' }), { status: 200, headers: { 'Content-Type': 'application/json' } }); } return new Response(JSON.stringify({ error: { http_code: response.succcess, message: `SMS-Versand fehlgeschlagen: ${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: `Failed to send sms: ${JSON.stringify(err)}` } }), { status: 500, headers: { 'Content-Type': 'application/json' } }); } });
- Klicken Sie auf Deploy function