1-Python - 腾讯云发送短信
about
Python3.9
官档地址:https://cloud.tencent.com/document/product/382/43196#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6
首先下载qcloudsms-py模块:
pip install qcloudsms-py
# 我用的版本是0.1.4
# pip install qcloudsms-py==0.1.4
示例:
import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
def send_sms_single(phone_num, template_id, template_param_list):
"""
单条发送短信
:param phone_num: 手机号
:param template_id: 腾讯云短信模板ID
:param template_param_list: 短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
:return:
"""
appid = 1400706267 # 自己应用ID
appkey = "0a34f00bbb26255737dfeb13026a2dbf" # 自己应用Key
sms_sign = "子豪的终身修行" # 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)
sender = SmsSingleSender(appid, appkey)
try:
response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
except HTTPError as e:
response = {'result': 1000, 'errmsg': "网络异常发送失败"}
return response
def send_sms_multi(phone_num_list, template_id, param_list):
"""
批量发送短信
:param phone_num_list:手机号列表
:param template_id:腾讯云短信模板ID
:param param_list:短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
:return:
"""
appid = 1400706267
appkey = "0a34f00bbb26255737dfeb13026a2dbf"
sms_sign = "子豪的终身修行"
sender = SmsMultiSender(appid, appkey)
try:
response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
except HTTPError as e:
response = {'result': 1000, 'errmsg': "网络异常发送失败"}
return response
if __name__ == '__main__':
result1 = send_sms_single("目标手机号", 1471286, [666, ])
print(result1)
# result2 = send_sms_single( ["目标手机号1", "目标手机号2",],1471286, [777, ])
# print(result2)
常见错误
TypeError: init() got an unexpected keyword argument 'encoding'
python3.9 + qcloudsms-py0.1.4
我用Python3.9运行腾讯云短信接口发送的短信示例,报错:

首先在官档中发现,目前的SDK只支持2.7-3.6。
官档地址:https://cloud.tencent.com/document/product/382/43196#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6

我这用的是Python3.9,出现了版本不兼容的问题。
解决办法有两种,第一种,就是直接使用Python3.6的解释器去下载qcloudsms-py模块,然后直接运行就不报错了,我懒得换解释器版本,就用的是第二种方式。
第二种就是修改qcloudsms-py的源码。
- 从Python解释器的路径中,找源码文件,路径是
你的Python解释器安装目录\lib\site-packages\qcloudsms_py\httpclient.py。

- 打开
httpclient.py文件,定位到63行左右,按照下图修改就行了。

然后你载运行你的脚本就OK了。
参考:https://blog.51cto.com/u_13691477/5211979

浙公网安备 33010602011771号