首頁  >  文章  >  web前端  >  nodejs 如何傳簡訊

nodejs 如何傳簡訊

王林
王林原創
2023-05-08 16:08:381134瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn