MobTech簡訊驗證ApiCloud端SDK
簡訊驗證碼 SDK,為開發者提供全球通用的簡訊驗證碼工具,開發者可以用其在 App 植入簡訊驗證碼
配置整合 開發者使用本模組之前需要先到Mob官網申請開發者賬號,並在賬號內填寫相應資訊建立自己的 APP,從而獲取 AppKey 和 AppSecret,然後新增 SMSSDK 功能,獲取模板 id。 詳情參考: 快速整合獲取Appkey和AppSecret
準備工作
下載並安裝開發工具:APICloud Studio 2
建立應用
APICloud 提供了兩種建立應用的方式,方便開發者在雲端或 APICloud Studio 中建立應用。 雲端建立應用:
(1)註冊並登入 APICloud 系統: http://www.apicloud.com/console 點選左上角“建立應用”, 如圖:選擇“Native”,填寫“名稱”及“說明”,應用建立完成。
APICloud Studio 中建立應用:
(2) 登入 APICloud Studio,沒有賬號點選“註冊賬號”,已經註冊,用之前註冊的 APICloud 賬號登入 APICloud Studio
這 2 端可以相互同步資訊:
同步本地應用到雲端資源庫,開發者在 APICloud Studio 建立的應用會和雲端資源庫建立連線。專案程式碼改動後,可以使用 APICloud Studio 的程式碼提交功能提交程式碼到雲端資源庫。
新增模組
開啟 APICloud 雲端,1.2.0 版開始 smssdk 模組同時依賴於 mobcommonlib 模組,故需要在模組庫搜尋 mobcommonlib 模組,並新增至 已新增模組。
注意:從 1.2.0 版本開始,使用簡訊 SDK 需要接入隱私功能,隱私功能的接入方法請參考 mobcommonlib 模組的文件。
模組使用攻略
Android: 使用此模組之前 android 需先配置 config.xml 檔案,方法如下
<meta-data name="Mob-AppKey" value="moba6b6c6d6"/> <meta-data name="Mob-AppSecret" value="b89d2427a3bc7ad1aea1e1e8c1d36bf3"/>
iOS: iOS 需要將 Info.plist 檔案放入 res 目錄下,檔案內容內容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>MOBAppKey</key> <string>moba6b6c6d6</string> <key>MOBAppSecret</key> <string>b89d2427a3bc7ad1aea1e1e8c1d36bf3</string> </dict> </plist>
欄位描述:
- Mob-AppKey:(必須配置)從 MobTeck 官網獲取的 AppKey。
- Mob-AppSecret:(必須配置)從 MobTech 官網獲取的 AppSecret。 申請方法參考 快速整合獲取AppKey和AppSecret 。
編譯 APP 時 iOS 請配置訪問聯絡人的許可權
獲取文字驗證碼(getTextCode)
需要引入模組: var moduleSMSSDK = api.require('smssdk');
getTextCode({params}, callback(ret,err)) params:
phoneNumber: 型別:字串 預設值:無 描述:手機號 zone: 型別:字串 預設值:無 描述:區域號,不要加"+"號 tempCode: 型別:字串 預設值:無 描述:模板id
callback(ret,err) ret:
型別:JSON 物件
內部欄位: { smart:0 //是否為智慧驗證 bool型別, ios 忽略此欄位 }
err:
型別:JSON 物件
內部欄位:
{ code:0 //錯誤碼(詳見錯誤碼常量) msg:"" //錯誤描述 };
示例程式碼
var param = {zone:'86', phoneNumber:'18500000000',tempCode:'1319972'}; moduleSMSSDK.getTextCode(param, function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { // 正常訊息示例:{"smart":false} alert("Success:\n" + JSON.stringify(ret)); } });
獲取語音驗證碼(getVoiceCode)
getVoiceCode({params}, callback(ret, err)) params:
phoneNumber: 型別:字串 預設值:無 描述:手機號 zone: 型別:字串 預設值:無 描述:區域號,不要加"+"號
callback(ret, err) ret:
型別:JSON 物件 內部欄位: { }
err:
型別:JSON 物件
內部欄位:
{ code:0 //錯誤碼(詳見錯誤碼常量) msg:"" //錯誤描述 };
示例程式碼:
// param中的key命名不能改變 var param = {zone:'86', phoneNumber:'18500000000'}; moduleSMSSDK.getVoiceCode(param, function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { // 正常訊息示例:{} alert("Success:\n" + JSON.stringify(ret)); } });
提交驗證碼(commitCode)
commitCode({params}, callback(ret, err)) params:
phoneNumber: 型別:字串 預設值:無 描述:手機號 zone: 型別:字串 預設值:無 描述:區域號,不要加"+"號 code: 型別:字串 預設值:無 描述:驗證碼
callback(ret, err) ret:
型別:JSON 物件 內部欄位: { }
err:
型別:JSON 物件
內部欄位:
{ code:0 //錯誤碼(詳見錯誤碼常量) msg:"" //錯誤描述 };
示例程式碼:
// param中的key命名不能改變 var param = {zone:'86', phoneNumber:'18500000000', code:'4847'}; moduleSMSSDK.commitCode(param, function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { } });
獲取區號(getSupportedCountries)
getSupportedCountries(callback(ret, err)) callback(ret, err) ret:
型別:JSON 物件
內部欄位:
{ countries = ( { rule = "^\\d+"; zone = 1868; } ) }
err:
型別:JSON 物件
內部欄位:
{ code:0 //錯誤碼(詳見錯誤碼常量) msg:"" //錯誤描述 };
示例程式碼:
// param中的key命名不能改變 moduleSMSSDK.getSupportedCountries(function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { // 正常訊息示例:{"countries":[{zone=590, rule=^\d+},{zone=680, rule=^\d+}]} alert("Success:\n" + JSON.stringify(ret)); } });
提交使用者資料(submitUserInfo)
submitUserInfo({params}, callback(ret, err)) params:
uid: 型別:字串 預設值:無 描述:使用者id nickname: 型別:字串 預設值:無 描述:使用者暱稱 avatar: 型別:字串 預設值:無 描述:頭像地址 phoneNumber: 型別:字串 預設值:無 描述:手機號 zone: 型別:字串 預設值:無 描述:區域號,不要加"+"號
callback(ret, err) ret:
型別:JSON 物件
內部欄位: { }
err:
型別:JSON 物件
內部欄位:
{ code:0 //錯誤碼(詳見錯誤碼常量) msg:"" //錯誤描述 };`
示例程式碼:
// param中的key命名不能改變 var uid = "3241241"; var nickname = "SmsSDK_Api_Cloud_User_" + uid; var avatar = "http://download.sdk.mob.com/510/deb/0c0731ac543eb71311c482a2e2.png"; // param中的key命名不能改變 var param = {uid:uid, nickname:nickname, avatar:avatar, phoneNumber:'18500000000', zone:'86'}; moduleSMSSDK.submitUserInfo(param, function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { } });
獲取版本號(getVersion)
getVersion(callback(ret, err)) callback(ret,err) ret
型別:JSON 物件
內部欄位: { version: "1.0.0" }
err
型別:JSON 物件
內部欄位: { }
示例程式碼:
// param中的key命名不能改變 moduleSMSSDK.getVersion(function(ret, err){ if (err !== null && err !== undefined && err !== '') { // 錯誤訊息示例:{"msg":"Template not exist.","code":484} alert("Error:\n" + JSON.stringify(err)); } else { // 正常訊息示例:{"version":'3.2.2'} } });
- SegmentFault 2022 年社群週報 Vol.9
- 社群精選 | 不容錯過的9個冷門css屬性
- 2022最新版 Redis大廠面試題總結(附答案)
- 手寫一個mini版本的React狀態管理工具
- 【vue3原始碼】十三、認識Block
- 天翼雲全場景業務無縫替換至國產原生作業系統CTyunOS!
- JavaScript 設計模式 —— 代理模式
- MobTech簡訊驗證ApiCloud端SDK
- 以羊了個羊為例,淺談小程式抓包與響應報文修改
- 這幾種常見的 JVM 調優場景,你知道嗎?
- 聊聊如何利用管道模式來進行業務編排(下篇)
- 通用ORM的設計與實現
- 如此狂妄,自稱高效能佇列的Disruptor有啥來頭?
- 為什麼要學習GoF設計模式?
- 827. 最大人工島 : 簡單「並查集 列舉」運用題
- 介紹 Preact Signals
- 手把手教你如何使用 Timestream 實現物聯網時序資料儲存和分析
- 850. 矩形面積 II : 掃描線模板題
- Java 併發程式設計解析 | 基於JDK原始碼解析Java領域中的併發鎖,我們可以從中學習到什麼內容?
- 令人困惑的 Go time.AddDate