SMS-Versand mit TypeScript: API-Bibliotheken und Integration

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

SMS-Versand mit TypeScript: Überblick über APIs und Bibliotheken

Moderne Webanwendungen und Dienste benötigen oft eine Integration mit SMS-Gateways, um Benachrichtigungen, Bestätigungen oder Marketingnachrichten zu versenden. TypeScript, als Erweiterung von JavaScript, bietet eine strenge Typisierung, die besonders bei der Arbeit mit externen APIs nützlich ist. In diesem Artikel betrachten wir, wie der SMS-Versand aus einer TypeScript-Anwendung mit gängigen Bibliotheken und Diensten organisiert werden kann.



Warum TypeScript für die Arbeit mit SMS-APIs?

TypeScript fügt statische Typisierung hinzu, was die Anzahl der Laufzeitfehler reduziert. Bei der Arbeit mit SMS-Anbietern ist dies kritisch, da API-Anfragen oft komplexe Datenstrukturen enthalten (Telefonnummern, Text, Versandparameter). Typen helfen, Tippfehler in Feldnamen zu vermeiden und gewährleisten eine korrekte Datenübertragung.



Wichtige Bibliotheken für den SMS-Versand

Auf dem Markt gibt es mehrere beliebte Dienste, die HTTP-APIs zum Versenden von SMS bereitstellen. Wir betrachten zwei der gängigsten Optionen für TypeScript.



1. Twilio (offizielles SDK)

Twilio ist einer der Marktführer im Bereich Cloud-Kommunikation. Das offizielle SDK für Node.js ist vollständig mit TypeScript kompatibel und wird mit vorgefertigten Typen ausgeliefert.

Installation:

npm install twilionpm install @types/twilio --save-dev  // Typen sind bereits enthalten, aber für ältere Versionen

Beispiel für den SMS-Versand:

import { Twilio } from 'twilio';

const accountSid = 'IHRE_ACCOUNT_SID';const authToken = 'IHR_AUTH_TOKEN';const client = new Twilio(accountSid, authToken);

interface SmsParams { to: string; // Empfängernummer im Format +71234567890 from: string; // Absendernummer (bei Twilio gekauft) body: string; // Nachrichtentext}

async function sendSms(params: SmsParams): Promise<void> { try { const message = await client.messages.create({ body: params.body, from: params.from, to: params.to, }); console.log(`SMS gesendet. SID: ${message.sid}`); } catch (error) { console.error('Fehler beim Senden:', error); }}

// VerwendungsendSms({ to: '+79001234567', from: '+15005550006', body: 'Hallo! Dies ist eine Testnachricht aus TypeScript.',});


2. SMS Aero (REST API via fetch/axios)

SMS Aero ist ein russischer Dienst, der für lokale Projekte beliebt ist. Es gibt kein offizielles SDK für TypeScript, aber es können typisierte Wrapper um fetch oder axios verwendet werden.

Installation:

npm install axios

Beispiel mit typisierter Anfrage:

import axios, { AxiosResponse } from 'axios';

interface SmsAeroResponse { status: 'success' | 'error'; id?: number; message?: string;}

interface SmsAeroParams { to: string; from?: string; text: string; sign?: string; // Absendersignatur}

const API_URL = 'https://gate.smsaero.ru/v2/sms/send';const EMAIL = 'ihre_email@example.com';const API_KEY = 'ihr_schlüssel';

async function sendSmsAero(params: SmsAeroParams): Promise<SmsAeroResponse> { const auth = Buffer.from(`${EMAIL}:${API_KEY}`).toString('base64'); const response: AxiosResponse<SmsAeroResponse> = await axios.post( API_URL, { number: params.to, text: params.text, sign: params.sign || 'SMS Aero', }, { headers: { 'Authorization': `Basic ${auth}`, 'Content-Type': 'application/json', }, } ); return response.data;}

// VerwendungsendSmsAero({ to: '79001234567', text: 'Ihr Bestätigungscode: 1234', sign: 'MyApp',}).then(res => console.log(res));


Erstellung einer universellen TypeScript-Wrapper-Klasse

Für Projekte, bei denen ein Anbieterwechsel erforderlich sein könnte, ist es praktisch, eine abstrakte Schnittstelle zu erstellen.

Empfehlungen