我是靠谱客的博主 娇气刺猬,最近开发中收集的这篇文章主要介绍python调用qq发送短信_使用腾讯云发送短信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用腾讯云发送短信

第一次注册使用白送你200条,美滋滋

在腾讯云平台申请

点点点操作就完事了,要想发送短信,必须要申请签名和模板。签名类型可以使用网站,公众号,小程序,app

填好信息,上传指定的截图凭据即可。网站创建签名需要上传域名备案里面的备案号等信息

接下来需要创建短信内容模板,按照提示写就行。模板里面可以挖坑,接下来可以在坑里面填验证码,过期时间一类的

还需要在应用管理中创建应用。系统会默认创建一个应用,也可以自己新创建。应用里的SDK AppID和 AppKey接下来程序里面会作为配置参数

使用python SDK

上面是腾讯云sdk2.0的官方文档,3.0功能态度,2.0就足够好用了

首先安装腾讯云sdk2.0的模块,使用虚拟环境的话注意检查一下有没有装上

pip install qcloudsms_py

准备必要参数

# 短信应用 SDK AppID

appid = 1400009099 # SDK AppID 以1400开头

# 短信应用 SDK AppKey

appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad"

# 需要发送短信的手机号码,看需求来,作为参数传入下面的函数

phone_numbers = ["21212313123", "12345678902", "12345678903"]

# 短信模板ID,需要在短信控制台中申请

template_id = 7839 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请

# 签名

sms_sign = "腾讯云" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请

单发短信

from qcloudsms_py import SmsSingleSender

from qcloudsms_py.httpclient import HTTPError

ssender = SmsSingleSender(appid, appkey)

params = ["5678","2"] # 用来填进短信模板的坑,比如5678是验证码,2是失效时间

try:

# phone_numbers是需要发送短信的手机号,按实际情况传参即可

result = ssender.send_with_param(86, phone_numbers[0],

template_id, params, sign=sms_sign, extend="", ext="")

except HTTPError as e:

print(e)

except Exception as e:

print(e)

print(result)

注意单发和群发的方法不一样,具体可以查看官方文档

在django项目中使用

我们可以把像sdk发送短信这样的第三方功能放进libs里,把配置参数拉出来写在libs的settings里,便于管理和扩展

settings.py

导入到发送短信的功能文件,里面写配置参数

# settings.py

# 短信应用 SDK AppID

appid = 1400009099 # SDK AppID 以1400开头

# 短信应用 SDK AppKey

appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad"

# 需要发送短信的手机号码,看需求来,作为参数传入下面的函数

phone_numbers = ["21212313123", "12345678902", "12345678903"]

# 短信模板ID,需要在短信控制台中申请

template_id = 7839 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请

# 签名

sms_sign = "腾讯云" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请

send_sms.py

# send_sms.py 放功能代码

from qcloudsms_py import SmsSingleSender

from qcloudsms_py.httpclient import HTTPError

# 导入腾讯云的模块

from luffyapi.utils.logging import log

# 导入日志模块,短信发送失败的时候纪录

from . import settings

# 同级目录导入配置参数

# 生成随机4位验证码,在视图中调用

def rand_code():

import random

rd_code = ''

for i in range(4):

rd_code += str(random.randint(0,9))

return rd_code

# 单发短信功能

def send_sms(phone,code):

ssender = SmsSingleSender(settings.appid, settings.appkey)

params = [code,"3"] # 当模板没有参数时,`params = []`

try:

result = ssender.send_with_param(86, phone,

settings.template_id, params, sign=settings.sms_sign, extend="", ext="")

if result.get('result') == 0:

return True

else:

return False

except Exception as e:

print(e)

log.error(f'{phone}:短信发送失败,错误为{str(e)}')

视图函数中

class LoginView(ViewSet):

# 发送短信验证码

@action(methods=['GET'], detail=False)

def send(self,request,*args,**kwargs):

phone = request.query_params.get('phone')

if not re.match('^1[3-9][0-9]{9}$',phone):

return APIResponse(code=0,msg='手机号格式错误')

code = send_sms.rand_code()

result = send_sms.send_sms(phone,code)

# 发送验证码

# 验证码存进缓存,之后换成redis,缓存的key放在settings的const里

cache.set(settings.PHONE_CACHE_KEY%phone,code,180)

if result:

return APIResponse(code=1,msg='发送成功')

else:

return APIResponse(code=0,msg='发送失败')

最后

以上就是娇气刺猬为你收集整理的python调用qq发送短信_使用腾讯云发送短信的全部内容,希望文章能够帮你解决python调用qq发送短信_使用腾讯云发送短信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部