加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
sms.py 5.09 KB
一键复制 编辑 原始数据 按行查看 历史
小飞 提交于 2024-11-19 22:25 . 注释
import json
import logging
import time
import types
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.sms.v20210111 import sms_client, models
# SecretId:AKIDGLCoAWv5E7tRjfSzIRN6br0wdBHNGvMa
# SecretKey:5KL7g17ze4HagYDdpnX4NSIuIRN4WlmY
sms_dict = {
"QJ": ["2237156"],
"LF": ["2237198"],
"蓝色预警": {
"s": "2310377",
"z": "2310378",
},
"黄色预警": {
"s": "2310383",
"z": "2310384",
},
"橙色预警": {
"s": "2310385",
"z": "2310387",
},
"红色预警": {
"s": "2310388",
"z": "2310389",
}
}
# def send_sms(data, sms_type: list):
# try:
# # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
# # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
# # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
# cred = credential.Credential("AKIDGLCoAWv5E7tRjfSzIRN6br0wdBHNGvMa", "5KL7g17ze4HagYDdpnX4NSIuIRN4WlmY")
# # 实例化一个http选项,可选的,没有特殊需求可以跳过
# httpProfile = HttpProfile()
# httpProfile.endpoint = "sms.tencentcloudapi.com"
#
# # 实例化一个client选项,可选的,没有特殊需求可以跳过
# clientProfile = ClientProfile()
# clientProfile.httpProfile = httpProfile
# # 实例化要请求产品的client对象,clientProfile是可选的
# client = sms_client.SmsClient(cred, "ap-beijing", clientProfile)
#
# print(sms_dict[sms_type[0]][sms_type[1]])
# # 实例化一个请求对象,每个接口都会对应一个request对象
# req = models.SendSmsRequest()
# params = {
# "PhoneNumberSet": ["18849350158"],
# "SmsSdkAppId": "1400929001",
# "TemplateId": sms_dict[sms_type[0]][sms_type[1]],
# "SignName": "地质灾害监测公众号",
# "TemplateParamSet": data
# }
# req.from_json_string(json.dumps(params))
#
# # 返回的resp是一个SendSmsResponse的实例,与请求对象对应
# resp = client.SendSms(req)
# # 输出json格式的字符串回包
# print(resp.to_json_string())
#
#
# except TencentCloudSDKException as err:
# print(err)
def send_sms(sms_param:dict, phone_list: list):
try:
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
cred = credential.Credential("AKIDGLCoAWv5E7tRjfSzIRN6br0wdBHNGvMa", "5KL7g17ze4HagYDdpnX4NSIuIRN4WlmY")
# 实例化一个http选项,可选的,没有特殊需求可以跳过
httpProfile = HttpProfile()
httpProfile.endpoint = "sms.tencentcloudapi.com"
# 实例化一个client选项,可选的,没有特殊需求可以跳过
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化要请求产品的client对象,clientProfile是可选的
client = sms_client.SmsClient(cred, "ap-beijing", clientProfile)
# print(sms_dict[sms_type[0]][sms_type[1]])
logging.info('sms alarmType:%s location:%s id:%s ',sms_param["alarmType"],sms_param["location"],sms_dict[sms_param["alarmType"]][sms_param["location"]])
# 实例化一个请求对象,每个接口都会对应一个request对象
req = models.SendSmsRequest()
params = {
"PhoneNumberSet": phone_list,
"SmsSdkAppId": "1400929001",
"TemplateId": sms_dict[sms_param["alarmType"]][sms_param["location"]],
"SignName": "地质灾害监测公众号",
"TemplateParamSet": []
}
req.from_json_string(json.dumps(params))
# 返回的resp是一个SendSmsResponse的实例,与请求对象对应
resp = client.SendSms(req)
# 输出json格式的字符串回包
print(resp.to_json_string())
except TencentCloudSDKException as err:
print(err)
# send_sms([time.strftime("%H:%M", time.localtime()), "1001", "3", "23.1", "1", "25.3"])
# 2024-08-09 09:20:37
# {}-{}-{} {}:{}:{}
# {1}-{2}-{3} {4}:{5}:{6},{7}的监测仪,前{8}三轴倾角变化速率最大值达到{9}度;前{10}三轴倾角变化最大值达到{11}度触发红色预警。
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化