群辉NAS信息提醒大师

本文介绍了一个开源项目,通过企业微信API每天定时发送包含时间同步、天气、新闻和油价信息的提醒,方便日常生活。用户可以在家中拥有NAS或常开电脑上部署此项目。主要涉及的功能包括获取和发送信息、天气查询、新闻获取和油价信息等,并提供了详细的代码实现。该项目还支持接收并执行用户从微信发送的指令,拓展性强。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

群辉NAS信息提醒大师

我把这个信息定在了每天早上七点发送,笔者基本每天早上都会浏览一遍微信的消息,所以这个消息也能准时接收到,可以同步时间、查看天气、推送新闻还能获取油价信息,方便了我的生活。今天也向大家开源这个项目。

家里有NAS或者常年不关的电脑都可以直接部署。

功能展示

在这里插入图片描述

方案

目前可以通过企业微信API来给微信发送信息。

  1. 进入企业微信后台->应用管理->自建应用->创建应用
  2. 填写应用信息
  3. 创建完成之后进入自建的应用中, 获取 AgentId Secret (编辑可见人员) --> 我的企业-企业信息 获取企业ID --> 我的企业-微信插件 微信扫一扫加入企业 --> api 推送消息

企业微信发送信息API:https://work.weixin.qq.com/api/doc/90000/90135/90236

使用API发送信息基本框架

有了这个框架并且填写corpidcorpsecretaccess_tokenagentid 就能实现将信息发送至微信。

有了这个发送消息的基本功能就能根据自己的想法添加相应的功能。

import requests
from Pylog import LogErr, LogWarn, LogInfo
import json

class WXPost:
    """
    自动推送消息给微信类
    """

    corpid = ""  		# 企业微信ID
    corpsecret = ""  	# Secret是用于保障数据安全的“钥匙”
    access_token = ""  	# 企业微信访问API授权码
    agentid = 0    		# 企业应用的id
    def GetToken(self):
        """
        获取企业微信API接口的access_token函数
        https://open.work.weixin.qq.com/api/doc/90000/90135/91039
        """
        request_url = (
            "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + self.corpid + "&corpsecret=" + self.corpsecret
        )

        try:
            req = requests.post(request_url)
        except requests.exceptions.ConnectTimeout:
            LogErr("Connect "+ request_url +"timeout!")
        except requests.exceptions.ConnectionError:
            LogErr("Connect "+ request_url +"Error!")
        else:
            req_js=json.loads(req.text)
            if req_js['errmsg'] == "ok":
                self.access_token = req_js["access_token"]
                LogInfo("Get access_token success!")
            else:
                LogWarn("Get access_token failed!")
            

    def SendMessage(self, msgtype, user, msg):
        """
        发送消息函数
        https://open.work.weixin.qq.com/api/doc/90000/90135/90236#markdown%E6%B6%88%E6%81%AF
        msgtype:消息类型
        user:发送的用户
        msg:消息内容
        """
        request_url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.access_token
        body = {
            "touser": user,
            "msgtype": msgtype,
            "agentid": self.agentid,
            msgtype: {"content": msg},
            "safe": 0,
            "enable_duplicate_check": 0, 

            "duplicate_check_interval": 1800
        }
        body_js = json.dumps(body)
        try:
            req = requests.post(request_url, data=body_js)
        except requests.exceptions.ConnectTimeout:
            LogErr("Connect "+ request_url +"timeout!")
        except requests.exceptions.ConnectionError:
            LogErr("Connect "+ request_url +"Error!")
        else:
            req_js=json.loads(req.text)
            if req_js['errmsg'] == "ok":
                LogInfo("SendMessage success!")
            else:
                LogWarn("SendMessage failed!")

如何调用这些函数

Wxcorpid = "xxx"
Wxcorpsecret = "xxx"
wx = WXPost()
wx.corpid = Wxcorpid
wx.corpsecret = Wxcorpsecret
wx.agentid = 1000002
wx.GetToken()
msg = " ---------每日工作提醒---------"
wx.SendMessage("text", "@all", msg)  # 这边user写成@all意思是发送给企业内的所有人

该程序的功能和对应的源文件

该程序用的最多的也就是爬虫,所有信息都来自网络。

脚本介绍
Holiday.py计算节假日
Pylog.pyLog内容输出
Weather.py获取天气信息
WxPost.py企业微信Api
Run.py主要运行的文件
News.py获取网易新闻每日要闻
CityOil.py获取城市油价

当然了,除了可以实现向微信推送信息,还能实现获取用户向微信发送的信息,根据信息执行命令,玩法多样。

更高深的还可以跑一个油价预测.

开源下载地址:https://github.com/JackyMao1999/Jackyrequests/tree/master/WxSend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值