Python使用腾讯云-短信服务发送手机短信
目前【腾讯云短信】为客户提供【国内短信】、【国内语音】和【海外短信】三大服务,腾讯云短信SDK支持以下操作:
国内短信
国内短信支持操作:
• 指定模板单发短信
• 指定模板群发短信
• 拉取短信回执和短信回复状态
海外短信
海外短信支持操作:
• 指定模板单发短信
• 指定模板群发短信
• 拉取短信回执和短信回复状态
注:海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。
语音通知
语音通知支持操作:
• 发送语音验证码
• 发送语音通知
• 上传语音文件
• 按语音文件fid发送语音通知
• 指定模板发送语音通知类
开发环境准备
在开始开发云短信应用之前,需要准备如下信息:
a.获取SDK AppID和AppKey
云短信应用SDK AppID和AppKey可在短信控制台的应用信息里获取,如您尚未添加应用,请到短信控制台中添加应用。
b.申请签名
一个完整的短信由短信签名和短信正文内容两部分组成,短信签名须申请和审核,签名可在短信控制台的相应服务模块内容配置中进行申请。
c.申请模板
同样短信或语音正文内容模板须申请和审核,模板可在短信控制台的相应服务模块内容配置中进行申请。
具体操作如下:
1) 注册腾讯云账号
https://cloud.tencent.com/
在产品列表内找到短信,在短信内添加应用

点击“免费领取短信”,会送一百次调用。
然后我们创建一个应用:
获取对应的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:https://github.com/qcloudsms/qcloudsms_py
1.手动下载或clone最新版本qcloudsms_py代码
2.在qcloudsms_py目录运行pythonsetup.pyinstall或直接把qcloudsms_py所在目录加入sys.path(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 : 公众号 司马弈 个人博客:chengf.cc
# @Site :
# @File : send_msg.py
# @Software: PyCharm
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
import random
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 使用腾讯云发送手机6位随机验证码
class TestQCloudSMS(object):
def __init__(self, phone_num):
self.appid ='' # 准备工作中的SDK AppID,类型:int
self.appkey = '' # 准备工作中的App Key,类型:str
self.phone_num = phone_num
self.sign = '' # 准备工作中的应用签名,类型:str
def make_code(self):
"""
:return: code 6位随机数
"""
code = ''
for item in range(6):
code += str(random.randint(0, 9))
return code
def send_msg(self):
ssender = SmsSingleSender(self.appid, self.appkey)
try:
# parms参数类型为list
rzb = ssender.send_with_param(86, self.phone_num, 613429, [self.make_code()],
sign=self.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(random.choices(phone_num)[0]) # 需传入发送短信的手机号,单发
sendmsg.send_msg()

当我们程序运行后,返回的"errmsg"为"ok"的时候,就发送成功了,这时我们看下手机有没有收到:
手机收到的正是我们定制的模板内容,搞定!
Python使用腾讯云-短信服务发送手机短信的更多相关文章
- springboot 项目使用阿里云短信服务发送手机验证码
1.注册阿里云账户进行账号实名认证 2.申请短信签名和模板 3.创建access_key和access_secret 4.然后就是代码编写 一.找到产品与服务里面的云通信模块,然后找到短信服务,开通短 ...
- 国都企信通短信平台发送手机短信的python脚本一例
一年前,由于工作需要,给以色列的同事解释一下国都短信平台的短信发送格式,本来不懂python的我硬着头皮写了一个sample,比较粗,能用,但不优美,希望以后学会python能改得像我同事写的那么优雅 ...
- python调用腾讯云短信接口
目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...
- Java调用阿里云短信接口发送手机验证码
前五步可参考阿里云服务文档:https://help.aliyun.com/document_detail/59210.html?spm=a2c4g.11174283.4.1.2b152c42DoJ7 ...
- SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework
1.调用前组装参数 2.调用发送信息服务脚本 .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...
- 利用java实现的一个发送手机短信的小例子
今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...
- C#简单实现发送手机短信
偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2) ...
- JAVA发送手机短信
<p><span>JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 ...
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
装饰者模式的学习(c#) 案例转自https://www.cnblogs.com/stonefeng/p/5679638.html //主体基类 using System;using System.C ...
随机推荐
- 什么?你们公司还没有将JVM初始和最大堆内存大小设置为相同值?
微信公众号:Java大家族 JVM将初始和最大内存大小设置为相同值的好处 启动应用程序时,我们指定初始内存大小和最大内存大小.对于在 JVM(Java 虚拟机)上运行的应用程序,初始和最大内存大小通过 ...
- 带你了解极具弹性的Spark架构的原理
摘要:相比MapReduce僵化的Map与Reduce分阶段计算相比,Spark的计算框架更加富有弹性和灵活性,运行性能更佳. 本文分享自华为云社区<Spark架构原理>,作者:JavaE ...
- 深入了解 TiDB SQL 优化器
分享嘉宾:张建 PingCAP TiDB优化器与执行引擎技术负责人 编辑整理:Druid中国用户组第6次大数据MeetUp 出品平台:DataFunTalk 导读: 本次报告张老师主要从原理上带大家深 ...
- 增删改查- 万能map- 模糊查询
1.编写接口 2.编写对应的mapper种的sql语句 3.测试 接口 public interface UserDao { List<User> getUserList(); //根据I ...
- 《C++Primary》阅读简要总结
三月份的主要任务之一就是阅读C++Primary这本书,终于在昨天25号下午完成了基础部分的阅读,算是对基础知识整体梳理了一遍,开始看这本书大概可以追溯到去年12月份,在那之前看了C++的入门书籍&l ...
- 请收藏,Linux 运维必备的 40 个命令总结,收好了~
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 1.删除0字节文件 find -type f -size ...
- 一文带你读懂zookeeper在大数据生态的应用
一个执着于技术的公众号 一.简述 在一群动物掌管的世界中,动物没有人类聪明的思想,为了保持动物世界的生态平衡,这时,动物管理员-zookeeper诞生了. 打开Apache zookeeper的官网, ...
- 使用 IDEA 构建聚合工程并引入 Spring Boot
简介 聚合工程里可以分为: Project 项目,也可称为顶级项目.顶级工程.父工程 Module 模块,也可称为子模块.子工程 总结一下: 这两者之间是父子继承的关系,即 模块继承顶级项目,模块之间 ...
- 每天一个 HTTP 状态码 204
204 No Content 204 No Content 表示服务器成功地处理了客户端的请求,但是没有任何要响应的内容.API 设计上,在用 PUT 请求更新某个资源成功后,后端可以在 HTTP 响 ...
- Spark: 单词计数(Word Count)的MapReduce实现(Java/Python)
1 导引 我们在博客<Hadoop: 单词计数(Word Count)的MapReduce实现 >中学习了如何用Hadoop-MapReduce实现单词计数,现在我们来看如何用Spark来 ...