Node.JS學習筆記(六)_台灣簡訊API串接_get_api串接練習(米瑟奇、台灣簡訊API)

 
在之前有一篇介紹到透過twilio來進行簡訊的接化發送



但由於twilio有要綁定公司再加上嚴格的安全審查機制
因此三不五時就遭到封號....QAQ
有點不太穩定

因此只能改其他家簡訊電信商的API這裡比較及測試過
AWS SNS 當中的SMS服務,但發現台灣門號屢屢失敗。


後來改採用台灣的國內簡訊
三竹要公司登記約三工作天的審核因此排除
評估網路上有經驗的高手們介紹的
米瑟奇 跟  台灣簡訊的API規格

米瑟奇簡訊
http://sms.message.com.tw/ofcl_web/index.php
預設提供的是500通的免費扣打
在進行API串接必須使用長簡訊
因為免費的試用會多一些米瑟奇簡訊平台的廣告內容




由於米瑟奇在進行中文訊息發送要求big5編碼
若直接中文內容發送簡訊收到會亂碼(如果是中文內容必須要編碼成big5再傳送)
此外nodejs中處理這種編碼十分麻煩
因此後來決定改用台灣簡訊方案



台灣簡訊
https://www.twsms.com/
https://www.twsms.com/dl/TwSMS_SMS_API_4.0.pdf

預設剛註冊只有提供10筆免費扣打的點數
國內一通一點
國外一通扣三點


相較於米瑟奇是比較小氣一點XD



但預設只要endpoint串的內文用url encode即可
對nodejs開發上來說比較單純不太需要做捨麼額外編碼處理
https://www.twsms.com/dl/TwSMS_SMS_API_4.0.pdf
這裡寫個共用的API調用模組

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const _request = require('request');
const urlencode = require('urlencode');
const usrname = "你在台灣簡訊平台註冊的名稱";
const password = "你在台灣簡訊平台註冊的密碼";

function send_sms(phone , msg){
    console.log("Input parameter:");
    console.log("phone:" + phone);
    console.log("msg:" + msg);
    const api_endpoint = `http://api.twsms.com/json/sms_send.php?username=${usrname}&password=${password}&mobile=${phone}&message=${urlencode(msg)}`;
    _request.get(api_endpoint , function(err,response,body){
        if(!err && response.statusCode == 200){
            console.log("成功發送簡訊");
            console.log(body);
            let jsonRet = JSON.parse(body);
            let ret_Code = jsonRet.code;
            console.log("code:"+ret_Code);
            let ret_Text = jsonRet.text;
            console.log("text:"+ret_Text);
            if(ret_Code == "00000"){
                console.log("send successfully ~");
            }else{
                console.log("send fail ~");
            }
        }else{
            console.log("error happen~");
            console.log(err);
            //console.log("status code:" + response.statusCode);
            console.log(api_endpoint);
        }
    });
}

module.exports = send_sms;


外部調用


























留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header