Bibliothek sms-client-ts: SMS-Versand über TypeScript
\nIn der modernen Webentwicklung bleibt der Versand von SMS-Nachrichten eine gefragte Funktion – von der Zwei-Faktor-Authentifizierung bis zu Benachrichtigungen über den Bestellstatus. Für das TypeScript-Ökosystem gibt es die praktische Bibliothek sms-client-ts, die eine typsichere Schnittstelle für die Arbeit mit gängigen SMS-Anbietern bietet. In diesem Artikel analysieren wir ihre API, Einrichtung und typische Anwendungsszenarien.
Installation und Einbindung
\nDie Bibliothek wird über npm verbreitet. Installieren Sie sie mit folgendem Befehl in Ihrem Projekt:
\nnpm install sms-client-ts\nNach der Installation importieren Sie die Hauptklasse SmsClient:
import { SmsClient } from 'sms-client-ts';\n\nClient-Konfiguration
\nFür die Arbeit mit einem beliebigen Anbieter muss ein Konfigurationsobjekt übergeben werden. Die Bibliothek unterstützt mehrere Dienste: Twilio, Vonage (Nexmo), SMSC.ru und andere. Beispiel für die Einrichtung mit Twilio:
\nconst client = new SmsClient({\n provider: 'twilio',\n credentials: {\n accountSid: process.env.TWILIO_ACCOUNT_SID,\n authToken: process.env.TWILIO_AUTH_TOKEN,\n from: '+1234567890' // Absendernummer\n }\n});\nFür den russischen Anbieter SMSC.ru sieht die Konfiguration anders aus:
\nconst clientSMSC = new SmsClient({\n provider: 'smscru',\n credentials: {\n login: 'your_login',\n password: 'your_password',\n sender: 'MyBrand' // Absendername\n }\n});\n\nWichtige API-Methoden
\nDie Bibliothek bietet drei Schlüsselmethoden für die Arbeit mit SMS. Betrachten wir jede davon.
\n\n1. Senden einer einzelnen Nachricht
\nDie Methode sendSingle nimmt die Empfängernummer und den Nachrichtentext entgegen. Sie gibt ein Promise mit einem Ergebnisobjekt zurück.
async function sendWelcomeSms(phone: string, name: string) {\n try {\n const result = await client.sendSingle({\n to: phone,\n text: `Hallo, ${name}! Willkommen in unserem Service.`\n });\n console.log('SMS gesendet:', result.messageId);\n } catch (error) {\n console.error('Fehler beim Senden:', error);\n }\n}\n\nsendWelcomeSms('+49123456789', 'Ivan');\n\n2. Massenversand
\nUm dieselbe Nachricht an mehrere Empfänger zu senden, verwenden Sie die Methode sendBulk. Sie nimmt ein Array von Nummern entgegen.
async function sendPromoSms(phones: string[]) {\n const result = await client.sendBulk({\n to: phones,\n text: 'Sonderangebot nur heute! 20% Rabatt auf alle Artikel.'\n });\n \n console.log(`Erfolgreich gesendet: ${result.successCount}`);\n console.log(`Fehler: ${result.failCount}`);\n if (result.errors.length > 0) {\n result.errors.forEach(err => {\n console.error(`Fehler für ${err.phone}: ${err.message}`);\n });\n }\n}\n\nsendPromoSms(['+49123456789', '+49198765432']);\n\n3. Überprüfung des Lieferstatus
\nNach dem Senden können Sie den Status einer Nachricht anhand ihrer ID überprüfen. Die Methode getStatus gibt den aktuellen Zustand zurück.
async function checkDelivery(messageId: string) {\n const status = await client.getStatus(messageId);\n console.log(`Status der Nachricht ${messageId}: ${status.state}`);\n // Mögliche Werte: 'pending', 'delivered', 'failed', 'unknown'\n \n if (status.state === 'failed') {\n console.log('Fehlergrund:', status.errorMessage);\n }\n}\n\ncheckDelivery('SM123456789');\n\nFehlerbehandlung und Typisierung
\nDie Bibliothek bietet eigene Fehlertypen, was für TypeScript-Entwickler praktisch ist. Alle Ausnahmen erben von der Basisklasse SmsError.
import { SmsError, ValidationError, AuthError, ProviderError } from 'sms-client-ts';\n\nasync function safeSend(phone: string, text: string) {\n try {\n return await client.sendSingle({ to: phone, text });\n } catch Auch in der Bibliothek
Swagger/OpenAPI-Generierung für PHP: Die besten Tools und Bibliotheken
Sarama für Go: Vollständiges Tutorial mit Beispielen
Integration von Prometheus-Metriken in C++: Die Bibliothek prometheus-cpp
JWT-Tokens in Kotlin: Generierung, Überprüfung und Verwendung mit io.jsonwebtoken