腾讯云短信服务介绍
目前【腾讯云短信】为客户提供【国内短信】、【国内语音】和【海外短信】三大服务,腾讯云短信SDK支持以下操作:
国内短信
国内短信支持操作:
- 指定模板单发短信
- 指定模板群发短信
- 拉取短信回执和短信回复状态
海外短信
海外短信支持操作:
- 指定模板单发短信
- 指定模板群发短信
- 拉取短信回执和短信回复状态
注:海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。
语音通知
语音通知支持操作:
- 发送语音验证码
- 发送语音通知
- 上传语音文件
- 按语音文件fid发送语音通知
- 指定模板发送语音通知类
开发环境准备
在开始开发云短信应用之前,需要准备如下信息:
- 1.获取SDK AppID和AppKey
云短信应用SDK AppID和AppKey可在短信控制台的应用信息里获取,如您尚未添加应用,请到短信控制台中添加应用。
- 申请签名
一个完整的短信由短信签名和短信正文内容两部分组成,短信签名须申请和审核,签名可在短信控制台的相应服务模块内容配置中进行申请。
- 申请模板
同样短信或语音正文内容模板须申请和审核,模板可在短信控制台的相应服务模块内容配置中进行申请。
具体操作如下:
1) 注册腾讯云账号
在产品列表内找到短信,在短信内添加应用
点击“免费领取短信”,会送一百次调用。
然后我们创建一个应用:
获取对应的SDK AppID 和 App Key
配置短信内容
注:需先申请“短信签名”和“短信正文”,按照要求填写申请即可,腾讯云的审核效率还是很快的,一般在1-2个小时内就会有结果
总结:准备工作准备内容:SDK AppID、App Key、应用签名、短信正文模板ID。
2)安装 qcloudsms_py(腾讯云短信 Python SDK)
安装
pip
qcloudsms_py采用pip进行安装,要使用qcloudsms功能,只需要执行:
pip install qcloudsms_py
手动
github:
1.手动下载或clone最新版本qcloudsms_py代码
2.在qcloudsms_py目录运行或直接把qcloudsms_py所在目录加入(python2/python3都支持)
开发实现
如果我们直接按官方的案例实现,会出现ssl:certificate_verify_failed这个问题,报错如下:
rubyCaughtvmodlfault:[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed(_ssl.c:590)
产生这个问题的原因在于python本身,pyhon升级到2.7.9以后,引入了一个新特性,当使用urllib打开https的链接时,会检验一次ssl证书。而当目标网站使用的是自签名证书时,就会抛出urllib2.URLError的错误,所以我们这里导入了ssl的包来避免这个问题。
# @Time : 2020/5/24 22:13 # @Author : 公众号 司马弈 个人博客:c # @Site : # @File : # @Software: PyCharm from qcloudsms_py import SmsSingleSender from qcloud import HTTPError import random import ssl = # 使用腾讯云发送手机6位随机验证码 class TestQCloudSMS(object): def __init__(self, phone_num): ='' # 准备工作中的SDK AppID,类型:int = '' # 准备工作中的App Key,类型:str = phone_num = '' # 准备工作中的应用签名,类型:str def make_code(self): """ :return: code 6位随机数 """ code = '' for item in range(6): code += str(0, 9)) return code def send_msg(self): ssender = SmsSingleSender(, ) try: # parms参数类型为list rzb = (86, , 613429, [()], sign=, extend='', ext='') print(rzb) except HTTPError as http: print("HTTPError", http) except Exception as e: print(e) if __name__ == '__main__': phone_num = ['156********'] sendmsg = TestQCloudSMS(phone_num)[0]) # 需传入发送短信的手机号,单发 ()
当我们程序运行后,返回的"errmsg"为"ok"的时候,就发送成功了,这时我们看下手机有没有收到:
手机收到的正是我们定制的模板内容,搞定!