Node.js是一種使用JavaScript語言編寫的開源伺服器運行環境,它具有高效、快速、輕量級和可擴展等功能。在實際應用中,Node.js可以幫助開發人員輕鬆實現各種功能,包括發送簡訊。
在本文中,我們將詳細介紹Node.js如何發送簡訊以及如何使用現有的簡訊服務來實現這項功能。
一、使用Node.js發送簡訊
1.安裝依賴
首先,我們需要安裝Node.js的官方模組之一--"twilio",可以透過npm來進行安裝,執行以下命令:
npm install twilio
2.驗證身份
在使用Twilio API發送簡訊之前,需要驗證身份,取得Account SID和Auth Token,這兩個參數可以在Twilio的控制台中找到。
3.編寫發送短信的程式碼
我們使用Twilio API發送短信,在Node.js中的程式碼如下:
const accountSid = 'YOUR_ACCOUNT_SID'; const authToken = 'YOUR_AUTH_TOKEN'; const client = require('twilio')(accountSid, authToken); client.messages .create({ body: 'Hello from Node', from: '+1XXXXXXXXX', //在Twilio中您需要购买一个号码, to: '+1XXXXXXXXX' //作为from参数输入,to是您的接收短信的电话号码。 }) .then(message => console.log(message.sid));
執行上述程式碼後,在您的手機上將發送「Hello from Node」的簡訊。
二、使用現有的短信服務發送短信
如果您不想使用Twilio API,而是想使用一些已存在的短信服務來發送短信,那麼下面是一些常見的短信服務供您選擇:
1.騰訊雲端簡訊服務
騰訊雲簡訊API可透過HTTP/HTTPS協定調用,支援GET或POST請求,參數使用標準HTTP協定格式(如key1 =value1&key2=value2),其中簽章演算法請參考騰訊雲簡訊API文件。
範例程式碼如下:
const request = require('request'); const querystring = require('querystring'); const appid = 'YOUR_APPID'; const appkey = 'YOUR_APPKEY'; const nationCode = '86' //中国区电话号码前缀 const phoneNumber = 'XXXXXXXXX' //接受短信的手机号码 const templateId = 'XXXXXX' //短信模板ID const random = Math.floor(Math.random()*99999+1) //随机数 const curTime = Math.floor(new Date().getTime()/1000); //当前时间戳 const sig = querystring.escape(Buffer.from(`appkey=${appkey}&random=${random}&time=${curTime}&mobile=${nationCode}${phoneNumber}`, 'utf8').toString('base64')); const options = { url: 'https://yun.tim.qq.com/v5/tlssmssvr/sendsms', method: 'POST', headers: { 'Content-Type': 'application/json' }, json: true, body: { tel: { nationCode, mobile: phoneNumber }, tpl_id: templateId, params: [ random.toString(), '5' ], }, qs: { sdkappid: appid, random, time: curTime, sig, extend: '', ext: '' }, }; request(options, (error, response, body) => { if(error) { console.log(error); } else { console.log(body); } });
2.阿里雲簡訊服務
阿里雲簡訊服務也可以透過HTTP/HTTPS協定調用,並且提供了Java、PHP、Python和Node.js等多種程式語言的SDK。
範例程式碼如下:
const Core = require('@alicloud/pop-core'); const client = new Core({ accessKeyId: '<YourAccessKeyId>', accessKeySecret: '<YourAccessKeySecret>', endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25' }); const params = { "RegionId": "cn-hangzhou", "PhoneNumbers": "1500000000", "SignName": "阿里云短信测试专用", "TemplateCode": "SMS_71390007", "TemplateParam": "{\"code\":\"12345\"}" } const requestOption = { method: 'POST' }; client.request('SendSms', params, requestOption).then((result) => { console.log(result); }, (ex) => { console.log(ex); })
三、總結
透過本文的介紹,我們可以了解到Node.js如何發送短信,包括使用Twilio API以及使用騰訊雲和阿里雲等現有的簡訊服務。發送簡訊是我們開發中常用的功能之一,在實際應用中需要根據具體情況進行選擇。
以上是nodejs 如何傳簡訊的詳細內容。更多資訊請關注PHP中文網其他相關文章!