手把手教你使用腾讯云短信服务——开发者视角

概念

首先我们先介绍下腾讯云短信服务的相关概念,便于开发者对短信服务有一个整体的认识。

SDKAPPID

SDKAPPID即短信应用ID,用以区分用户腾讯云账号下不同业务,很多用户会把这个和腾讯云账号的APPID混淆,我们这里加以区分下。

腾讯云账号的APPID是在腾讯云账号信息页中呈现的,

注意】注意图中最下方的认证信息,如果您代表的是企业或者政府机构(拥有企业营业执照或者组织机构的社会信用代码)建议您将认证方式修改为企业认证,这样您在使用腾讯云短信服务时可以使用营销类型的短信。

腾讯云短信的SDKAPPID是在短信控制台下展示的,

注意】如果您需要为多个业务接入腾讯云短信服务,那么建议您添加多个应用,这样不同业务的短信服务配置可以隔离而不会互相影响。

签名

现在手机上收到的短信一般都形如下面的格式,

【腾讯云】您的验证码是 1234,请在 2 分钟内填写。

【】中的内容称为签名,代表着这条短信发出的企业或者组织机构、亦或者是产品或者服务的名称,所以当您申请签名是要么上传企业或者组织机构的营业执照要么上传代表产品或者服务的站点URL、公众号信息的截图,签名总体上就分为这两类。

模板

模板的作用是便于平台对内容进行管控,防止违规信息下发。在接入指引中您可以看到模板形如,

您的验证码是 {1},请在 {2} 分钟内填写。

{1}和{2}表示模板的变量,表示可变部分,比如验证码的具体内容、客户的性别(先生和女士)、用户的手机号尾数、时间等。

注意】尽量确保可变部分简洁,不要采用极少明文信息应对复杂内容场景,这样会使模板中明文部分过于抽象而难以通过审核,这种情况可以尝试对内容进行分类然后申请不同的模板。

接入

通过上面的概念介绍和腾讯云的短信官方文档快速入门应用管理相信开发者都能够快速地进行接入了。

开发

SDK集成

开发者如果使用的是官方SDK支持的平台进行开发那么可以直接集成进行开发。

API开发

如果开发者没有使用官方SDK所支持的平台或者官方SDK无法满足开发者要求(性能或者开发库)进行开发,那么可以按照API说明进行开发,下面进行简要说明。

协议

腾讯云的短信API使用HTTPS按照POST方法发送JSON格式内容进行请求。我们以指定模板单发短信协议为例,

HTTPS

为了保证用户的请求内容不被窃听,特别是诸如登录验证码之类的信息,腾讯云短信服务没有提供 HTTP 的协议支持。而且为了发送内容的灵活性,也只支持 POST 方法进行发送。

URL

https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=xxxxx&random=xxxx

url中包含两个参数 sdkappid,random,sdkappid 上文已经提到是短信应用ID,添加和查看方式上文已经提到,random 不带0前缀的随机整数,目的是在需要排查问题时查找日志信息,所以建议开发者使用随机整数(避免重复)。

内容

{
    "ext": "",
    "extend": "",
    "params": [
        "验证码",
        "1234",
        "4"
    ],
    "sig": "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4",
    "sign": "腾讯云",
    "tel": {
        "mobile": "13788888888",
        "nationcode": "86"
    },
    "time": 1457336869,
    "tpl_id": 19
}

可以看到内容是采用 JSON 的格式进行组织的,如果您对 JSON 不了解,可以先看下这里这里有近乎所有语言的JSON开发库,开发者可以参考使用。

这些参数在文档中有解释,这里重点介绍下sig字段。

sig字段的构建方法如下,

sha256(appkey=$appkey&random=$random&time=$time&mobile=$mobile)

用的是类似于PHP伪代码的形式,其中$打头的都是变量,代表实际使用时用的值,random的值需要注意,一定要与URL中的random参数值一致,time为请求发起时系统的UNIX时间戳,所以开发者系统时间需要经过校准或者不宜偏差过大(超过10分钟),这两个字段是为了协议的安全性而加入的,您如果有兴趣可以分别了解下唯密文攻击重放攻击

应答

{
    "result": 0,
    "errmsg": "OK",
    "ext": "",
    "fee": 1,
    "sid": "xxxxxxx"
}

开发者一般关心的是 result 不为0的情况,一般来说如果不为0,那么在errmsg会有准确的提示信息,如果没有明确的出错信息可以查看这里,或者联系官方助手。对接完成之后,可以通过统计页面查看报表,

安全

最重要的事情在最后说——安全,这里我们主要如何防刷。短信被刷的直接危害是浪费开发者经费,另外就是运营商监管。

首先腾讯云短信业务提供了频率限制能力,

其次如果您有更加高级的需求尝试接入我们的验证码服务

后记

如果读者看完这篇文章还有不清楚的地方,欢迎留言交流。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

云短信服务

1 篇文章4 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大葡萄元元

蒲公英(pgyer)——完美的 App测试方案

开发型团队App内部测试以及对应的crash报告类的服务相对很少,而且并不成熟。通过了解蒲公英-作为技术型研发团队算是在这一领域的后起之秀,而随着app市场的不...

1871
来自专栏P2P传输

BT软件系统包含哪些部分?BT技术如何突破运营商的封锁?

BT技术已经被很多个人和企业用来在互联网上发布各种资源,其好处是不需要资源发布者拥有高性能服务器,就能迅速有效地把发布的资源,传向其他的BT客户软件使用者,可以...

1820
来自专栏技术翻译

物联网的神经系统

当今世界有数十亿的智能设备,但是如果这些设备是相互连接的呢?如果这些设备可以像它们的主人一样相互作用,形成一种全球性的神经系统呢?这从本质上描述了人们所说的物联...

2191
来自专栏安恒信息

安卓再现系统广播高危漏洞,影响99.9%安卓手机

近日,有博客披露安卓系统存在安卓系统广播漏洞,99.9%的安卓手机将面临安全威胁。恶意程序利用该漏洞,可伪造任意内容的手机短信,及致手机死机,甚至可将手机恢复出...

3756
来自专栏CSDN技术头条

微博热点事件背后数据库运维的“功守道”

【导语】 微博拥有超过3.76亿月活用户,是当前社会热点事件传播的主要平台。而热点事件往往具有不可预测性和突发性,较短时间内可能带来流量的翻倍增长,甚至更大。如...

28110
来自专栏编程

如何系统维护好网站?这款错误监控平台不可缺少

当我们在运营一个网站时,尤其是技术产品是基于网站的情况下,如何确保网站运营正常,如何先于用户获知网页崩溃、异常信息,如何从技术层面上监控并及时解决错误信息,如何...

2416
来自专栏云计算D1net

云存储访问控制措施实战经验

不管是对于商业还是家庭用户来说,云存储正成为一种流行产品。如亚马逊S3、Box、Copiun和Thru等服务拥有功能丰富的产品,使用户可以轻松地备份、同步和...

3795
来自专栏猿天地

挑战微服务你准备好了吗

使用微服务 你准备好了吗? 目前,几乎所有人都对微服务趋之若鹜。打开你的新闻聚合客户端你会发现,几乎每篇文章都在讲微服务架构。 如果你的公司要进行微服务重构,让...

3518
来自专栏北京马哥教育

企业IT运维以及信息管理部服务器管理

方法 1、服务器有必要保持简洁。除了必要的应用软件以及安全软件之外,尽量不要安全其它的软件。 2、要做好服务器帐号权利规划和分配,分配够用的权利就行,从而降低...

3736
来自专栏黑白安全

Google Chrome 将从9月开始,默认 HTTPS 页面为安全站点

据外媒 bleepingcomputer 5月17日报道,谷歌正计划停止在地址栏中标记 HTTPS 页面为“安全”站点,换句话说,在没有发现异常的情况下,所有 ...

651

扫码关注云+社区

领取腾讯云代金券