在 JavaScript (Node.js) 中发送短信:sms-node-client API 库

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

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

开始课程

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                    

推荐