在JavaScript (Node.js)上发送短信:twilio库
在现代Web开发中,经常需要向用户发送短信通知:注册确认、双因素认证码、订单状态提醒等等。在Node.js生态系统中,用于此任务最流行且可靠的库之一是twilio。这是Twilio公司的官方SDK,它提供了一个简单而强大的API,用于以编程方式发送短信、语音通话以及处理其他电信服务。
在本文中,我们将详细介绍如何安装、配置和使用twilio库从您的Node.js应用程序发送短信。您将了解主要方法,学会处理错误,并看到几个实际示例。
安装与配置
首先,您需要一个Twilio账户。注册后,您将获得:
- Account SID — 您账户的唯一标识符。
- Auth Token — 用于验证请求的密钥。
- Twilio phone number — 用于发送短信的电话号码(测试时免费提供)。
通过npm安装库:
npm install twilio安装后,创建文件send-sms.js并引入库,传入您的凭据:
const twilio = require('twilio');
const accountSid = 'YOUR_ACCOUNT_SID';const authToken = 'YOUR_AUTH_TOKEN';const client = twilio(accountSid, authToken);基本短信发送
要发送消息,请使用client.messages.create()方法。它接受一个包含三个必填字段的对象:
body— 消息文本(单条短信最多1600个字符)。from— 您的Twilio号码(格式为+1234567890)。to— 接收方号码(也使用国际格式)。
发送简单短信的示例:
client.messages .create({ body: '你好!这是来自Twilio的测试消息。', from: '+1234567890', to: '+79876543210' }) .then(message => console.log('消息已发送。SID:', message.sid)) .catch(error => console.error('错误:', error));发送成功后,您将获得一个message对象,其中包含唯一的sid(消息标识符)、投递状态和其他信息。
使用async/await异步发送
对于更现代的方法,请使用async/await语法。将调用包装在try...catch中以处理错误:
const sendSMS = async (to, body) => { try { const message = await client.messages.create({ body: body, from: '+1234567890', to: to }); console.log(`短信已发送至 ${to}。SID: ${message.sid}`); return message; } catch (error) { console.error('无法发送短信:', error.message); throw error; }};
// 使用sendSMS('+79876543210', '您的验证码:1234');附加参数
该库支持许多可选参数。以下是一些示例:
mediaUrl— 图片或其他媒体文件的URL(用于MMS)。statusCallback— 用于接收投递状态通知的URL(webhook)。applicationSid— 用于额外配置的Twilio应用程序SID。
发送带图片的MMS示例:
client.messages .create({ from: '+1234567890', to: '+79876543210', body: '看看这个'