普歌-騰訊雲簡訊+使用node傳送簡訊(3種方法API、SDK)、封裝工具、搭建web服務、寫介面、呼叫介面傳送簡訊、時效性判斷(上)
普歌-騰訊雲簡訊+三種實現傳送簡訊的方法
前提準備:
這是我的正文模板: 您的驗證碼為:{1},該驗證碼{2}分鐘內有效,請勿洩漏於他人!
- 有了簽名和正文模板後,需要準備這些引數(這是在有了前面兩個東西之後)
- 應用SDKAppID:那個14開頭的( SKDApp相關引數)
- 應用SDKAppKey:( SKDApp相關引數)
- 簡訊模板id:6位那個( 正文模板檢視詳情)
- 簽名內容:( 簽名檢視詳情)
- SecretId(金鑰id):( 金鑰相關檢視)
- SecretKey(金鑰key):( 金鑰相關檢視)
以上為前提準備,沒有準備好先去準備
第一種,使用api介面傳送簡訊
- 這一種是最基本的呼叫介面的方式,就不具體附程式碼了,下面放上訪問介面的基本引數
- 介面請求域名: sms.tencentcloudapi.com
- 請求方式:post
- 請求引數(以下我標註紅色是一些必選項或可能要傳遞的引數):
引數名稱 | 必選 | 型別 | 描述 |
---|---|---|---|
Action | 是 | String | 公共引數,本介面取值:SendSms。 |
Version | 是 | String | 公共引數,本介面取值:2019-07-11。 |
Region | 否 | String | 公共引數,本介面不需要傳遞此引數。 |
PhoneNumberSet.N | 是 | Array of String | 下發手機號碼,採用 e.164 標準,格式為+[國家或地區碼][手機號],單次請求最多支援200個手機號且要求全為境內手機號或全為境外手機號。例如:+8613711112222, 其中前面有一個+號 ,86為國家碼,13711112222為手機號。 |
TemplateID | 是 | String | 模板 ID,必須填寫已稽核通過的模板 ID。模板ID可登入 簡訊控制檯 檢視,若向境外手機號傳送簡訊,僅支援使用國際/港澳臺簡訊模板。 |
SmsSdkAppid | 是 | String | 簡訊SdkAppid在 簡訊控制檯 新增應用後生成的實際SdkAppid,示例如1400006666。 |
Sign | 否 | String | 簡訊簽名內容,使用 UTF-8 編碼,必須填寫已稽核通過的簽名,簽名資訊可登入 簡訊控制檯 檢視。注:國內簡訊為必填引數。 |
TemplateParamSet.N | 否 | Array of String | 模板引數,若無模板引數,則設定為空。 |
ExtendCode | 否 | String | 簡訊碼號擴充套件號,預設未開通,如需開通請聯絡 sms helper。 |
SessionContext | 否 | String | 使用者的 session 內容,可以攜帶使用者側 ID 等上下文資訊,server 會原樣返回。 |
SenderId | 否 | String | 國內簡訊無senderid,無需填寫該項;若需開通國際/港澳臺簡訊senderid,請聯絡smshelper。 |
請求示例
https://sms.tencentcloudapi.com/?Action=SendSms
&PhoneNumberSet.0=+8618511122233
&PhoneNumberSet.1=+8618511122266
&TemplateID=1234
&Sign=騰訊雲
&TemplateParamSet.0=12345
&SmsSdkAppid=1400006666
&SessionContext=test
&<公共請求引數>
- 響應(輸出)引數:
引數名稱 | 型別 | 描述 |
---|---|---|
SendStatusSet | Array of SendStatus | 簡訊傳送狀態。 |
RequestId | String | 唯一請求 ID,每次請求都會返回。定位問題時需要提供該次請求的 RequestId。 |
成功響應示例
{
"Response": {
"SendStatusSet": [
{
"SerialNo": "5000:1045710669157053657849499619",
"PhoneNumber": "+8618511122233",
"Fee": 1,
"SessionContext": "test",
"Code": "Ok",
"Message": "send success",
"IsoCode": "CN"
},
{
"SerialNo": "5000:104571066915705365784949619",
"PhoneNumber": "+8618511122266",
"Fee": 1,
"SessionContext": "test",
"Code": "Ok",
"Message": "send success",
"IsoCode": "CN"
}
],
"RequestId": "a0aabda6-cf91-4f3e-a81f-9198114a2279"
}
}
第二種,使用Node SDK 2.0傳送
下面是我總結的四步驟:
- 第一步下載模組 npm install qcloudsms_js
- 第二步 引入模組,給相應的引數{SDK的appid、appkey(例項化QcloudSms)、手機號、簽名內容}
- 第三步生成六位驗證碼
- 第四步呼叫sendWithParam傳送簡訊
放上程式碼
/*
* @fileName: sendNote
* @author: LG
* @date: 2020/12/7 8:21
* @description:測試傳送簡訊
* @update: 2020/12/7 8:21
*/
/**
* 騰訊雲簡訊 Node.js SDK 2.0
* 最近更新時間2020-09-23 17:15:17
* 1. qcloudsms_js採用npm進行安裝,要使用qcloudsms功能,只需要執行:
* npm install qcloudsms_js
*/
//引入qcloudsms_js模組
const QcloudSms = require('qcloudsms_js');
//簡訊應用SDK appid (number型別)
var appid = 14xxxxxxx;
//簡訊應用SDK appkey (字串型別)
var appkey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
//例項化QcloudSms
var qcloudsms = QcloudSms(appid, appkey);
//需要傳送簡訊的手機號
var phoneNumbers = ['',''];
//簡訊模板的id (number型別)
var templateId = xxxxxx;
//簽名 (字串)
var smsSign = 'xxx';
// 設定請求回撥處理, 這裡只是演示,使用者需要自定義相應處理回撥
function callback(err, res, resData) {
if (err) {
console.log("err: ", err);
} else {
console.log("request data: ", res.req);
console.log("response data: ", resData);
}
}
//生成n位驗證碼
function RndNum(n) {
var rnd = "";
for (var i = 0; i < n; i++)
rnd += Math.floor(Math.random() * 10);
return rnd;
}
//六位驗證碼
var VerificationCode = RndNum(6);
var ssender = qcloudsms.SmsSingleSender();
//簡訊模板的引數
var params = [VerificationCode, "2"];
/**
* 引數詳情
* 第一個nationCode(字串):國家撥號程式碼,例如中國為86,美國為1
* 第二個phoneNumber(字串):電話號碼
* 第三個tempId(數字型):模板編號ID
* 第四個params(陣列):模板中的引數的陣列
* 第五個sign(字串):簽名內容
* 第六個extend(字串):擴充套件欄位,預設為空
* 第七個ext(字串):內容將按原樣由伺服器返回
* 第八個callback(函式):回撥函式,傳送成功/失敗後觸發的函式
*/
ssender.sendWithParam("86", phoneNumbers[0], templateId, params, smsSign, "", "", callback);
// 簽名引數未提供或者為空時,會使用預設簽名傳送簡訊
最後執行node xxxx執行
如果呼叫成功會響應一個OK,失敗的話會給你提示哪裡有錯
第二種Node SDK3.0傳送簡訊
-
Node SDK2.0和Node SDK3.0的區別:
- Node SDK 3.0 通過tencentcloud-sdk-nodejs模組實現:新版 SDK 實現了統一化,具有各個語言版本的 SDK 使用方法相同,介面呼叫方式相同,錯誤碼相同以及返回包格式相同等優點。
- 本質上沒什麼區別,用哪個都行,SDK2.0也在維護中
-
已準備依賴環境:NODEJS 7.10.1 及以上版本。
-
我總結的傳送簡訊的必要步驟:
- 第一步 下載模組 tencentcloud-sdk-nodejs
- 第二步 匯入對應產品模組client models
- 第三步 配置client配置(金鑰id、金鑰key、可選配置),例項化sms的client物件
- 第四步生成六位驗證碼
- 第五步 請求引數(手機號、模板引數、模板id、appid、簽名內容)
- 第六步 呼叫client.SendSms傳送簡訊
- 官方文件和github使用地址
- 下面是程式碼:
/*
* @fileName: sendNote2
* @author: LG
* @date: 2020/12/7 13:41
* @description:sendNote2
* @update: 2020/12/7 13:41
*/
/**
* SDK 3.0是雲 API 3.0平臺的配套工具,您可以通過 SDK 使用所有 簡訊 API。新版 SDK 實現了統一化,具有各個語言版本的 SDK 使用方法相同,介面呼叫方式相同,錯誤碼相同以及返回包格式相同等優點。
*/
// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
const tencentcloud = require("tencentcloud-sdk-nodejs");
//匯入對應產品模組的client models
const SmsClient = tencentcloud.sms.v20190711.Client;
/* SDK 會自動指定域名,通常無需指定域名,但訪問金融區的服務時必須手動指定域名
* 例如 SMS 的上海金融區域名為 sms.ap-shanghai-fsi.tencentcloudapi.com *
* 第二個引數是地域資訊,可以直接填寫字串 ap-guangzhou,或者引用預設的常量 */
const clientConfig = {
//騰訊雲認證資訊
credential: {
secretId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
secretKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
},
//產品地域
region: "",
//可選配置例項
profile: {
httpProfile: {
endpoint: "sms.tencentcloudapi.com",
},
},
};
//例項化要請求產品的client物件
//例項化 SMS 的 client 物件
const client = new SmsClient(clientConfig);
//生成n位驗證碼
function RndNum(n) {
var rnd = "";
for (var i = 0; i < n; i++) rnd += Math.floor(Math.random() * 10);
return rnd;
}
//五位驗證碼
var VerificationCode = RndNum(6);
/**
* 引數說明
* !! SmsSdkAppid 簡訊應用 ID:在 [簡訊控制檯] 新增應用後生成的實際 SDKAppID,例如1400006666
* !! Sign 簡訊簽名內容: 使用 UTF-8 編碼,必須填寫已稽核通過的簽名,可登入 [簡訊控制檯] 檢視簽名資訊
* ExtendCode 簡訊碼號擴充套件號: 預設未開通,如需開通請聯絡 [sms helper]
* SenderId 國際/港澳臺簡訊 senderid: 國內簡訊填空,預設未開通,如需開通請聯絡 [sms helper]
* SessionContext 使用者的 session 內容: 可以攜帶使用者側 ID 等上下文資訊,server 會原樣返回
* PhoneNumberSet 下發手機號碼,採用 e.164 標準,+[國家或地區碼][手機號] 最多不要超過200個手機號
* TemplateID 模板 ID: 必須填寫已稽核通過的模板 ID,可登入 [簡訊控制檯] 檢視模板 ID
* TemplateParamSet 模板引數: 若無模板引數,則設定為空
*/
const params = {
PhoneNumberSet: ["+86xxxxxxxxxx"],
TemplateParamSet: [VerificationCode, "5"],
TemplateID: "xxxxxx",
SmsSdkAppid: "14xxxxxxxxxxx",
Sign: "xxxxxxx",
};
// 通過 client 物件呼叫想要訪問的介面,需要傳入請求物件以及響應回撥函式
client.SendSms(params).then(
(data) => {
console.log(data);
},
(err) => {
console.error("error", err);
}
);
最後執行node xxxx執行
如果呼叫成功會響應一個OK,失敗的話會給你提示哪裡有錯。
到這裡結束了,基本傳送簡訊的方法已經詳解,下篇說封裝簡訊工具,搭建web服務,寫介面,時效性,呼叫介面傳送
收藏、點讚唄
更多推薦:wantLG的《普歌-騰訊雲簡訊+使用node傳送簡訊(3種方法API、SDK)、封裝工具、搭建web服務、寫介面、呼叫介面傳送簡訊、時效性判斷(下)》
- 作者:wantLG
- 本文源自:wantLG的《普歌-騰訊雲簡訊+使用node傳送簡訊(3種方法API、SDK)、封裝工具、搭建web服務、寫介面、呼叫介面傳送簡訊、時效性判斷(上)》
- 本文版權歸作者和CSDN共有,歡迎轉載,且在文章頁面明顯位置給出原文連結,未經作者同意必須保留此段宣告,否則保留追究法律責任的權利。
相關文章
- Laravel6 使用騰訊雲簡訊-傳送簡訊Laravel
- 阿里雲簡訊傳送 sdk阿里
- 2020最新 使用阿里雲的簡訊服務傳送簡訊阿里
- Laravel 極簡使用傳送簡訊 支援阿里雲、騰訊雲Laravel阿里
- 【故障公告】騰訊雲簡訊服務故障造成無法傳送手機簡訊
- 使用 Python 傳送簡訊?Python
- Jave Web阿里雲簡訊服務傳送驗證碼Web阿里
- java 阿里雲簡訊傳送Java阿里
- 阿里雲平臺傳送簡訊阿里
- 簡訊介面封裝封裝
- .net core 使用阿里雲簡訊傳送SMS阿里
- SpringBoot 實現傳送簡訊Spring Boot
- Laravel SMS 簡訊傳送包Laravel
- 郵件和簡訊傳送
- 簡訊傳送機的實現
- springboot 專案使用阿里雲簡訊服務傳送手機驗證碼Spring Boot阿里
- 路飛學城專案之整合騰訊雲簡訊服務、簡訊驗證碼介面
- 【轉載】SAP中用json資料格式呼叫http介面傳送簡訊郵件案例JSONHTTP
- 文字簡訊介面對接傳送簡訊後如何獲取狀態報告以及回覆報告
- 如何透過簡訊轉發在iPad和Mac上傳送和接收簡訊iPadMac
- 106傳送簡訊有哪些平臺?
- 二十一章 PHP傳送簡訊PHP
- 基於 ThinkPHP 呼叫阿里雲簡訊介面PHP阿里
- 在技術上如何實現傳送一條簡訊?
- 騰訊雲sdk 支援 騰訊雲簡訊 Laravel Notification [最新版]Laravel
- 聊聊如何在Java應用中傳送簡訊Java
- [Python]實現簡訊驗證碼的傳送Python
- Laravel6 使用騰訊雲簡訊-新增簡訊模板Laravel
- Laravel6 使用騰訊雲簡訊-修改簡訊模板Laravel
- 如何透過文字服務轉發在iPad和Mac上傳送和接收簡訊iPadMac
- Laravel6 使用騰訊雲簡訊-刪除簡訊模板Laravel
- Laravel6 使用騰訊雲簡訊-修改簡訊簽名Laravel
- Laravel6 使用騰訊雲簡訊-新增簡訊簽名Laravel
- Python呼叫飛書傳送訊息Python
- Laravel6 使用騰訊雲簡訊-刪除簡訊簽名Laravel
- 阿里雲簡訊服務阿里
- 阿里雲簡訊服務的使用-----獲取簡訊驗證碼阿里
- 簡單簡易實現伺服器遠端登陸傳送簡訊提示伺服器