前言引入:当我们手动去实现一个功能代码的时候,比如说学校的自动安全上报,让程序每天定时运行,但是我们需要得到他程序的运行的结果,即他最后是否上报成功了需要返回给我们一个反馈,不然,哪天程序失效了,就被抓个正着...。
所以这时候我们肯定会去想,既然都实现了自动上报了,为什么不再弄一个执行完程序后,将是否上报成功的结果以短信或者邮箱的形式发送到手机上呢?(
毕竟,大学生/上班族手机基本上都不离手
)
好了,到这,我们的需求非常之明确,就是在程序中增加一个
信息推送
的模块。
那么,如何去实现呢?当然是
先百度啦
平台->聚合数据
接下来先给一段推送消息的实现模板。
import requests
def send_message(url):
content = {
"mobile": "你的手机号:11位",
"tpl_id": "短信模板ID",
"tpl_value": "",
"key": "APPKEY",
result = requests.get(url, params=content).json()
if result:
print(result)
else:
print("请求异常")
if __name__ == '__main__':
url = "http://v.juhe.cn/sms/send"
send_message(url)
注意到我们是向一个url="http://v.juhe.cn/sms/send"
中发送了请求,并且请求中的参数设置为了content
,而content是以字典的形式包裹住的。这就是向一个接口发送请求的例子。里面的参数就是他接口所需要传的参数了。
上述代码中用的是聚合数据的网址。如果需要的话可自行创建账号。申请之后需要在数据中心-我的API-短信API服务,查看自己的请求Key,然后新建模板。
使用申请到的key和短信模板,套用官方给的发短信模板就可完成信息推送的demo了🎉
注意这里是短信推送服务。计费方式不大记得了,请移步到官网查看相关信息~
接下来在使用另一个短信推送平台-pushplus。这个需要关注微信公众号,信息推送是以类似于公众号的信息推送,如果喜欢这种推送形式的话,可以大胆尝试一下~
平台->pushplus
推送形式还是和刚才的模板不相上下。
首先需要微信关注pushplus推送加。然后查看其api文档。
这里给出相关的请求信息:
请求地址:www.pushplus.plus/send
请求方式:GET,POST,PUT,DELTE
请求参数,均支持url参数和body参数:
Content-Type: application/json
参数名称 | 是否必填 | 默认值 | 说明 |
---|
token | 是 | 无 | 用户令牌,可直接加到请求地址后,如:www.pushplus.plus/send/ {token} |
title | 否 | 无 | 消息标题 |
content | 是 | 无 | 具体消息内容,根据不同template支持不同格式 |
topic | 否 | 无 | 群组编码,不填仅发送给自己;channel为webhook时无效 |
template | 否 | html | 发送模板 |
channel | 否 | wechat | 发送渠道 |
webhook | 否 | 无 | webhook编码 |
callbackUrl | 否 | 无 | 发送结果回调地址 |
timestamp | 否 | 无 | 毫秒时间戳。格式如:1632993318000。服务器时间戳大于此时间戳,则消息不会发送 |
to | 否 | 无 | 好友令牌,微信公众号渠道填写好友令牌,企业微信渠道填写企业微信用户id |
示例一,最简单的例子
请求地址:www.pushplus.plus/send?token=…
请求方式: GET
说明:具体使用的时候将请求地址上的{token}替换成自己的token。content中如包含中文需要UrlEncode编码处理下。
示例二,一对多消息的例子
请求地址:www.pushplus.plus/send/
请求方式: POST
请求内容:
"token":"{token}",
"title":"标题",
"content":"消息内容",
"topic":"code",
"template":"html"
说明:消息将会发送给加入群组编码为code的成员
自己的token需要登录官网,然后在发送消息里面查看。
接下来粘贴上一段自己成功调用的代码:
import requests
def send_wechat(msg):
token = 'XXXXXXXXXXXX'
title = 'title1'
content = msg
template = 'html'
url = f"https://www.pushplus.plus/send?token={token}&title={title}&content={content}&template={template}"
r = requests.get(url=url)
print(r.text)
if __name__ == '__main__':
msg = 'Life is short I use python'
send_wechat(msg)
相信大家对推送消息有了一定的理解了,这下快去动手实现自己想实现的功能吧,比如每天给xxx发送天气提示😝😝
往期好文推荐🪶
「MongoDB」Win10版安装教程
「Python」数字推盘游戏
「Python」sklearn第一弹-标准化和非线性转化
「Python」turtle绘制图形🎈
「Python」Pandas-DataFrame的相关操作二