百木园-与人分享,
就是让自己快乐。

Python使用腾讯云-短信服务发送手机短信

目前【腾讯云短信】为客户提供【国内短信】、【国内语音】和【海外短信】三大服务,腾讯云短信SDK支持以下操作:

国内短信

国内短信支持操作:

• 指定模板单发短信 


• 指定模板群发短信


• 拉取短信回执和短信回复状态

 

海外短信

海外短信支持操作:

• 指定模板单发短信 


• 指定模板群发短信


• 拉取短信回执和短信回复状态

 


注:海外短信和国内短信使用同一接口,只需替换相应的国家码与手机号码,每次请求群发接口手机号码需全部为国内或者海外手机号码。

语音通知

语音通知支持操作:

Python学习交流Q群:906715085###
• 发送语音验证码


• 发送语音通知


• 上传语音文件


• 按语音文件fid发送语音通知


• 指定模板发送语音通知类

 

开发环境准备

在开始开发云短信应用之前,需要准备如下信息:

•1.获取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)

安装

python学习交流Q群:906715085###
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\"的时候,就发送成功了,这时我们看下手机有没有收到:

在这里插入图片描述

手机收到的正是我们定制的模板内容,搞定!


来源:https://www.cnblogs.com/123456feng/p/16199076.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python使用腾讯云-短信服务发送手机短信

相关推荐

  • 暂无文章