網(wǎng)站首頁 編程語言 正文
一、通知方式有哪些?
常見的通知方式有:郵件,電話,短信,微信。
短信和電話:通常是收費(fèi)的,較少使用;
郵件:適合帶文件類型的通知,較正式,存檔使用;
微信:適合告警類型通知,較方便。這里說的微信,是企業(yè)微信。
本文目的:通過企業(yè)微信應(yīng)用給企業(yè)成員發(fā)消息。
二、如何實(shí)現(xiàn)企業(yè)微信通知?
1、新建應(yīng)用
登陸網(wǎng)頁版企業(yè)微信 (https://work.weixin.qq.com),點(diǎn)擊 應(yīng)用管理 → 應(yīng)用 → 創(chuàng)建應(yīng)用
上傳應(yīng)用的 logo,輸入應(yīng)用名稱(債券打新),再選擇可見范圍,成功創(chuàng)建一個(gè)告警應(yīng)用
2、獲取Secret
使用 Python 發(fā)送告警請求,其實(shí)就只使用到兩個(gè)接口:
獲取 Token :https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}
發(fā)送請求:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}
可以看到,最重要的是 corpid 和 secret:
corpid:唯一標(biāo)識你的企業(yè)
secret:應(yīng)用級的密鑰,有了它程序才知道你要發(fā)送該企業(yè)的哪個(gè)應(yīng)用
corpid 可以通過 我的企業(yè) → 企業(yè)信息 → 企業(yè)id 獲取
secret 可以通過 點(diǎn)擊 新創(chuàng)建的應(yīng)用(債券打新) → 查看 secret → 發(fā)送 來獲取
最后將 corpid 和 secret 填入下面的常量中。
3、代碼實(shí)現(xiàn)
import json import time import requests ''' 本文件主要實(shí)現(xiàn)通過企業(yè)微信應(yīng)用給企業(yè)成員發(fā)消息 ''' CORP_ID = "xxxx" SECRET = "xxxx" class WeChatPub: s = requests.session() def __init__(self): self.token = self.get_token() def get_token(self): url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}" rep = self.s.get(url) if rep.status_code != 200: print("request failed.") return return json.loads(rep.content)['access_token'] def send_msg(self, content): url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token header = { "Content-Type": "application/json" } form_data = { "touser": "FengXianMei",#接收人 "toparty": "1",#接收部門 "totag": " TagID1 | TagID2 ",#通訊錄標(biāo)簽id "msgtype": "textcard", "agentid": 1000002,#應(yīng)用ID "textcard": { "title": "債券打新提醒", "description": content, "url": "URL", "btntxt": "更多" }, "safe": 0 } rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header) if rep.status_code != 200: print("request failed.") return return json.loads(rep.content) if __name__ == "__main__": wechat = WeChatPub() timenow = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) wechat.send_msg(f"<div class=\"gray\">{timenow}</div> <div class=\"normal\">注意!</div><div class=\"highlight\">今日有新債,堅(jiān)持打新!</div>") print('消息已發(fā)送!')
4、實(shí)現(xiàn)效果:
三、參考資料
如何用 Python 發(fā)送告警通知到微信?
用python給微信公眾號發(fā)消息
總結(jié)
原文鏈接:https://blog.csdn.net/shammy_feng/article/details/123711347
相關(guān)推薦
- 2022-07-19 Swagger導(dǎo)出html或者PDF
- 2022-07-09 Python?如何查看程序內(nèi)存占用情況_python
- 2022-06-11 .Net項(xiàng)目在Docker容器中開發(fā)部署_實(shí)用技巧
- 2022-07-01 Oracle數(shù)據(jù)庫用戶密碼過期的解決方法_oracle
- 2022-12-15 C++?Boost?Lockfree超詳細(xì)講解使用方法_C 語言
- 2022-06-08 Spring Cloud Nacos 配置動(dòng)態(tài)刷新
- 2022-12-16 Docker教程之使用dockerfile生成鏡像_docker
- 2023-12-15 Linux系統(tǒng)——退出vi編輯模式
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支