乐趣区

关于python:Python启发式自动化之微信推送

<Python 启发式自动化 > 之微信推送

Server 酱

对于类如音讯推送或机器人治理方面微信凋谢文档并没有给出简略易用的 API 接口,这里应用的是 Server 酱 服务推送告诉。

Server 酱

你只须要 注册 / 登陆 Server 酱 平台并扫码绑定微信公众号,对,Server 酱 实质是一个公众号,一个能够为你推送告诉信息的公众号。

胜利绑定后返回一个 SCKEY,相当于一个认证 KEY,用他们的话说,SCKEY 是十分重要的,所以请妥善保留,不要轻易通知他人。另外同样内容的音讯一分钟只能发送一次,服务器只保留一周的音讯记录。

具体接口如下:

https://sc.ftqq.com/[SCKEY].send

它承受两个参数:

  • text:音讯题目,最长为256,必填。
  • desp:音讯内容,最长64Kb,可空,反对MarkDown

PS: 此接口同时反对 GETPOST 申请。尽管我感觉并不合理,但它还是这么做了

所以你甚至没有必要编写代码,在浏览器地址栏键入 API 并传入必要参数也能发送告诉,比方
https://sc.ftqq.com/[SCKEY].send?text= 来自 PI 的问候

不出所料,很快就收到了一条来自 PI 哥的问候

Python 实现

# -*- coding: utf-8 -*
# @Time : 2020/10/30 9:48

import requests

# 是否开启微信告诉
notice_enable = True
# server 酱 key
sckey = "SCU1218....1e9fac5f9b79369b576"
# 信息主体
desp = ''' 
** 杭州天气 ** \n
> 900 度,西北风 1 级,空气良 8009,绝对温度 673%\n
> [![hello](https://images.pexels.com/photos/3369569/pexels-photo-3369569.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260)](https://www.dingtalk.com)\n
> ###### 10 点 20 分公布 [天气](https://www.dingtalk.com) \n
'''message = {"subject":" 来自 PI 的问候 ","content": desp}


class SendMsg(object):
    def send(self, message):
        if not notice_enable:
            print("未开启微信告诉")
            return
        url = f"https://sc.ftqq.com/{sckey}.send"
        r = requests.post(url, data={"text": f'{message["subject"]}', "desp": message["content"]})
        if r.status_code == requests.codes.ok:
            print("微信告诉发送胜利")
        else:
            print("微信告诉发送失败")


S = SendMsg()
S.send(message)

与浏览器地址栏相同,咱们提交了一个 POST 申请,并且应用了Markdown 语法,大大加强了可读性。

退出移动版