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 AIGC Hackathon 黑客马拉松全新出发!
- 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领域中的并发锁,我们可以从中学习到什么内容?