Python 全栈系列88 - 腾讯云短消息发送
说明通过短消息给自己发信息很方便,我希望我的网站、任务系统在运行时可以给到必要的提醒。这里使用腾讯云的短消息服务,最好先进行进行网站的备案。内容腾讯短消息控制台,简单跟着做就可以了。消息不能随便发,所以要先按提示设置消息模板,再往里面灌数据发送。控制台:短信模板:接下来我们看怎么样使用python发送,首先参考腾讯短消息的文档在控制台的这里查看自己的【短信应用id】之后要插入代码# 短信应用ID:
说明
通过短消息给自己发信息很方便,我希望我的网站、任务系统在运行时可以给到必要的提醒。这里使用腾讯云的短消息服务,最好先进行进行网站的备案。
内容
腾讯短消息控制台,简单跟着做就可以了。消息不能随便发,所以要先按提示设置消息模板,再往里面灌数据发送。
控制台:
短信模板:
接下来我们看怎么样使用python发送,首先参考腾讯短消息的文档
在控制台的这里查看自己的【短信应用id】
之后要插入代码
# 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666
req.SmsSdkAppid ='1400006666'
代码部分
要使用python调用短信服务,要先装包,参考
注意最好不要用Mac,说是有证书问题
!pip3 install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
我在ubuntu主机的jupyter上操作
在代码中提示要使用【腾讯云账户密钥对】secretId,secretKey
# 1 -----------------------------> 【腾讯云账户密钥对】
cred = credential.Credential(secretId,secretKey)
接下来要使用签名


申请签名时要使用域名管理的后台截图,不是那个域名证书,签名好了以后要在代码附加
# 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看
req.Sign = "xxx"
然后是一个流水id,服务器完成后会返回这个id。我理解这个就类似task_id, 方便识别服务器回给你的是哪个提交的返回,这也算是TCP的逻辑吧。
# 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回
req.SessionContext = "test_id_1"
要发送的手机号
# 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号
req.PhoneNumberSet = ["+8613711112222"]
本次发送的模板编号

# 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看
req.TemplateID = "449739"
然后使用模板参数进行参数化,这里给的的列表元素按顺序对应
'''
模板的内容
建议:{1} 目前:{2},温度:{3},湿度:{4},气压:{5} 预计{6}:{7}温度:{8},湿度:{9},气压:{10}
'''
# 模板参数: 若无模板参数,则设置为空
req.TemplateParamSet = ["带伞",
测试
签名没审批通过时发了一次失败
{
"SendStatusSet": [
{
"SerialNo": "",
"PhoneNumber": "+8613711112222",
"Fee": 0,
"SessionContext": "test_id_1",
"Code": "FailedOperation.SignatureIncorrectOrUnapproved",
"Message": "signature format is incorrect or signature is not approved",
"IsoCode": ""
}
],
"RequestId": "0b9be23f-e134-4e49-8948-a5acd6a07fd9"
}
短信的签名不可以有特殊符号(比如.),多试两次看审批的提示就可以了。
{
"SendStatusSet": [
{
"SerialNo": "2028:f825cc4a1f80389f4100",
"PhoneNumber": "+8613711112222",
"Fee": 2,
"SessionContext": "test_id_1",
"Code": "Ok",
"Message": "send success",
"IsoCode": "CN"
}
],
"RequestId": "154f17b3-d32d-4395-b265-084c7a8b809d"
}
成功了
梳理一下一共要自定义哪些
- 1 短信应用id(SdkAppid)。在控制台申请,例1400006666
- 2 应用秘钥对(【腾讯云账户密钥对】secretId,secretKey)。在控制台申请,是一堆比较长的码,类似md5。
- 3 短信签名。在控制台申请,记得申请的截图不是域名证书,而是域名管理后台的截图。
- 4 正文模板id。在控制台申请,里面按{1},{2}… 的方式设置参数部分。
- 5 流水号,也就是会话id。每次接口调用服务器的返回,帮你识别是哪个请求的返回。
- 6 要发送的手机号,到这里才进入实质的流程。
- 7 要发送的内容参数。
其他
在控制台的基础配置中增加一下安全限制

并配置一下紧急联系信息
字数和计费
字数超过70就会算两条的钱,一条5分钱,两条1毛钱。
更多推荐
所有评论(0)