目前【腾讯云短信】为客户提供【国内短信】、【国内语音】和【海外短信】三大服务,腾讯云短信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使用腾讯云-短信服务发送手机短信的更多相关文章

  1. springboot 项目使用阿里云短信服务发送手机验证码

    1.注册阿里云账户进行账号实名认证 2.申请短信签名和模板 3.创建access_key和access_secret 4.然后就是代码编写 一.找到产品与服务里面的云通信模块,然后找到短信服务,开通短 ...

  2. 国都企信通短信平台发送手机短信的python脚本一例

    一年前,由于工作需要,给以色列的同事解释一下国都短信平台的短信发送格式,本来不懂python的我硬着头皮写了一个sample,比较粗,能用,但不优美,希望以后学会python能改得像我同事写的那么优雅 ...

  3. python调用腾讯云短信接口

    目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...

  4. Java调用阿里云短信接口发送手机验证码

    前五步可参考阿里云服务文档:https://help.aliyun.com/document_detail/59210.html?spm=a2c4g.11174283.4.1.2b152c42DoJ7 ...

  5. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...

  6. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

  7. C#简单实现发送手机短信

    偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2) ...

  8. JAVA发送手机短信

    <p><span>JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 ...

  9. 装饰者模式的学习(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 ...

随机推荐

  1. 一行代码的魅力 -- css

    <template> <div></div> </template> <script> export default { } </sc ...

  2. 控制Python浮点数输出位数

    技术背景 在Python的一些长效任务中,不可避免的需要向文本文件.二进制文件或者数据库中写入一些数据,或者是在屏幕上输出一些文本,此时如何控制输出数据的长度是需要我们注意的一个问题.比如对于一个二进 ...

  3. 超越iTerm! 号称下一代终端神器,功能贼强大!

    程序员的一生,用的最多的两个工具,一个是代码编辑器(Code Editor),另外一个就是命令行终端工具(Terminal).这两个工具对于提高开发效率至关重要. 代码编辑器在过去的 40 年里不断进 ...

  4. [AcWing 797] 差分

    点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int a[N], b[N]; void in ...

  5. vue - vue基础/vue核心内容

    终于算是顺利进入vue了,确实也只有学了过后才知道,之前三过vue而不学,确实是对的,现在进来了一点都不后悔,ajax.node.js.promise.webpack.git等等确实是除了三大基础外还 ...

  6. Linux 运维工程师面试问答录(推荐阅读)

    一个执着于技术的公众号 本文整理了一些比较常见的 Linux 相关的面试题目,该问答录主要分为基础知识篇和服务器篇.内容主要涉及 Linux 基本原理.常用命令操作.服务器应用等部分的内容. Linu ...

  7. Spring Ioc源码分析系列--Ioc源码入口分析

    Spring Ioc源码分析系列--Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列--Ioc的基础知识准备介绍了I ...

  8. Mybatis-Plus入门实践

    简介 Mybatis-Plus 简称 MP ,是 Mybatis 的增强工具,提供了一批开箱即用的功能.特性.接口.注解,简化了应用程序访问数据库的相关操作,完善了Mybatis作为ORM仅能做到半自 ...

  9. 并发编程之volatile与JMM多线程内存模型

    一.通过程序看现象 在开始为大家讲解Java 多线程缓存模型之前,我们先看下面的这一段代码.这段代码的逻辑很简单:主线程启动了两个子线程,一个线程1.一个线程2.线程1先执行,sleep睡眠2秒钟之后 ...

  10. c++:-7

    上一节主要学习C++中的函数模版.数据结构以及排序查找操作:c++:-6,本节学习C++的范型程序设计和STL: 范型程序设计 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通 ...