使用TypeScript发送短信:集成短信服务商的API库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

使用TypeScript发送短信:集成短信服务商的API库概述



现代Web应用程序通常需要发送短信的功能:用于双因素认证、通知或营销推广。TypeScript凭借其严格的类型化和与Node.js的便捷集成,是构建可靠短信服务的绝佳选择。本文将介绍使用流行短信服务商API通过TypeScript发送短信的关键库和方法。



为什么选择TypeScript发送短信?

TypeScript为JavaScript添加了静态类型化,这在处理外部API时尤其有用。您将获得:

  • 自动补全和IDE中针对请求方法和参数的提示。
  • 来自短信网关的响应类型化,从而减少运行时错误的数量。
  • 安全的异步处理,通过async/await和Promise实现。


TypeScript中发送短信的主要库

有几个流行的库提供TypeScript类型和便捷的接口,用于集成短信服务商。我们来看两个最常用的:Twilio和Vonage(前身为Nexmo)。



1. Twilio库

Twilio是云通信市场的领导者之一。官方SDK twilio完全支持TypeScript,并提供现成的类型。

安装:

npm install twilionpm install @types/twilio --save-dev  // 如果未自动安装


使用Twilio通过TypeScript发送短信示例:

import { Twilio } from 'twilio';

// 初始化客户端const accountSid = process.env.TWILIO_ACCOUNT_SID!;const authToken = process.env.TWILIO_AUTH_TOKEN!;const client = new Twilio(accountSid, authToken);

// 异步发送函数async function sendSms(to: string, body: string): Promise<string> { try { const message = await client.messages.create({ body: body, from: process.env.TWILIO_PHONE_NUMBER, // 您的号码,格式为+1234567890 to: to }); console.log(`短信已发送,SID: ${message.sid}`); return message.sid; } catch (error) { console.error('发送短信错误:', error); throw error; }}

// 使用sendSms('+71234567890', '您的验证码:1234') .then(sid => console.log('成功:', sid)) .catch(err => console.error('错误:', err));


2. Vonage(前身为Nexmo)库

Vonage也提供了支持TypeScript的强大SDK。安装和基本配置:

npm install @vonage/server-sdk


通过Vonage使用TypeScript发送短信示例:

import { Vonage } from '@vonage/server-sdk';import { Auth } from '@vonage/auth';

// 配置认证const vonage = new Vonage(new Auth({ apiKey: process.env.VONAGE_API_KEY!, apiSecret: process.env.VONAGE_API_SECRET!}));

async function sendSmsVonage(to: string, text: string): Promise<void> { try { const response = await vonage.sms.send({ to: to, from: 'YourApp', text: text }); console.log('消息已发送:', response); } catch (error) { console.error('错误:', error); }}

// 调用函数sendSmsVonage('71234567890', '来自TypeScript的问候!');


在TypeScript中创建通用短信服务

为了灵活性,可以创建一个抽象类或接口,以便轻松切换服务商:

// sms.interface.tsexport interface SmsProvider {    sendSms(to: string, message: string): Promise<                    

推荐