MobTech簡訊驗證ApiCloud端SDK

語言: CN / TW / HK

簡訊驗證碼 SDK,為開發者提供全球通用的簡訊驗證碼工具,開發者可以用其在 App 植入簡訊驗證碼

配置整合 開發者使用本模組之前需要先到Mob官網申請開發者賬號,並在賬號內填寫相應資訊建立自己的 APP,從而獲取 AppKey 和 AppSecret,然後新增 SMSSDK 功能,獲取模板 id。 詳情參考: 快速整合獲取Appkey和AppSecret

準備工作

下載並安裝開發工具:APICloud Studio 2

建立應用

APICloud 提供了兩種建立應用的方式,方便開發者在雲端或 APICloud Studio 中建立應用。 雲端建立應用:

(1)註冊並登入 APICloud 系統: https://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 請配置訪問聯絡人的許可權

Demo例項widget下載地址

獲取文字驗證碼(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 = "https://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'}
   }
});