「Python」推送消息的简易实现
前言
前言引入:当我们手动去实现一个功能代码的时候,比如说学校的自动安全上报,让程序每天定时运行,但是我们需要得到他程序的运行的结果,即他最后是否上报成功了需要返回给我们一个反馈,不然,哪天程序失效了,就被抓个正着...。
所以这时候我们肯定会去想,既然都实现了自动上报了,为什么不再弄一个执行完程序后,将是否上报成功的结果以短信或者邮箱的形式发送到手机上呢?(毕竟,大学生/上班族手机基本上都不离手)
好了,到这,我们的需求非常之明确,就是在程序中增加一个信息推送的模块。
那么,如何去实现呢?当然是先百度啦
平台->聚合数据
接下来先给一段推送消息的实现模板。
# -*- coding: utf-8 -*- import requests def send_message(url): content = { "mobile": "你的手机号:11位", # 接受短信的用户手机号码 "tpl_id": "短信模板ID", # 您申请的短信模板ID,根据实际情况修改 "tpl_value": "", # 您设置的模板变量,根据实际情况修改 "key": "APPKEY", # 应用 APPKEY(应用详细页查询) } # 请注意这里请求方式是 get 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 | 否 | 发送渠道 | |
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'#前边复制到那个token title = 'title1' content = msg template = 'html' url = f"https://www.pushplus.plus/send?token={token}&title={title}&content={content}&template={template}" # print(url) r = requests.get(url=url) print(r.text) if __name__ == '__main__': msg = 'Life is short I use python' send_wechat(msg)
相信大家对推送消息有了一定的理解了,这下快去动手实现自己想实现的功能吧。