sms-node-client 库:从 Node.js 发送短信
现代 Web 应用程序通常需要与短信服务集成,以发送通知、注册确认或营销邮件。sms-node-client 库提供了一个简单便捷的接口,可直接从 Node.js 与流行的短信网关进行交互。它抽象了 HTTP 请求和身份验证的复杂性,使开发人员能够专注于业务逻辑。
在本文中,我们将介绍该库的主要功能:安装、API 连接配置、单条和批量消息发送,以及常见错误处理。
安装与导入
该库通过 npm 分发。请在项目根目录中执行以下命令进行安装:
npm install sms-node-client安装后,将库导入到您的 JavaScript 文件中:
const SMSClient = require('sms-node-client');
// 或使用 ES6 模块(如果已配置)// import SMSClient from 'sms-node-client';客户端配置
要使用 API,您需要初始化一个客户端对象,并向其传递连接参数:apiKey(访问密钥)和 apiSecret(秘密密钥)。这些数据通常由您的短信服务提供商提供。
const client = new SMSClient({ apiKey: '您的_api_密钥', apiSecret: '您的_api_秘密', // 可选:如果提供商使用非标准端点,可以指定基础 URL // baseUrl: 'https://custom-sms-gateway.com/api/v1'});库的主要方法
该库提供了三种发送消息的主要方法:
sendSMS(phone, message, options?)— 向一个号码发送单条短信。sendBulkSMS(messages, options?)— 向多个号码批量发送。getStatus(messageId)— 根据消息 ID 检查投递状态。
示例:发送单条短信
最简单的场景是向一个号码发送消息。该方法返回一个 Promise,因此使用 async/await 非常方便。
async function sendSingleSMS() { try { const result = await client.sendSMS( '+71234567890', // 接收者号码,国际格式 '你好!这是来自 Node.js 的测试消息。', // 消息文本 { sender: 'MyApp' } // 可选:发送者名称(必须在提供商处注册) );
console.log('短信发送成功:', result); // result.messageId - 用于跟踪状态的唯一消息 ID } catch (error) { console.error('发送短信错误:', error.message); }}
sendSingleSMS();示例:批量群发
要向多个号码发送相同文本,请使用 sendBulkSMS 方法。它接受一个包含号码的对象数组。
async function sendBulk() { const recipients = [ { phone: '+71234567890' }, { phone: '+70987654321' }, { phone: '+70123456789' } ];
try { const result = await client.sendBulkSMS(recipients, { message: '尊敬的客户!您的订单已准备好领取。', sender: 'ShopBot' });
console.log(`已发送 ${result.sentCount} 条消息`); // result.messages - 包含每个号码详细信息的数组 } catch (error) { console.error('批量群发错误:', error); }}
sendBulk();检查投递状态
发送后,您可以检查消息是否已送达收件人。为此,请使用发送时获得的 messageId。
async function checkStatus(messageId) { try { const status = await client.getStatus(messageId); console.log('消息状态:', status); // status.s