python 调用dingding的API进行消息发送
python 调用dingding的API进行消息发送
使用python的fastapi快速构建后端api接口
# pip install fastapi requests uvicorn from typing import Set from fastapi import FastAPI from starlette.middleware.cors import CORSMiddleware from pydantic import BaseModel import json import requests #创建一个FastApi实例 app = FastAPI() # fastapi 关闭接口文档 # app = FastAPI(docs_url=None, redoc_url=None) #设置允许访问的域名 origins = ["*"] #也可以设置为"*",即为所有。 # 创建数据模型 # 数据模型 # { # "clientName": "GW", # "handlerName": "dingTalkRobotWebHookMessageHandler", # "parmaClassName": "com.test.mp.message.param.dingtalk.JqDingTalkRobotTemplateMessage", # "requestMap": { # "markdown": { # "title": "免费试用账户申请", # "text": "# 免费试用申请\n ## 申请时间:2022/03/25 09:07:40 \n### 姓名:asdasd \n ### 电话:18222222222 \n ### 企业:asd \n ### 地址:asd\n" # }, # "msgtype": "markdown", # "at": { # "atMobiles": ["@dasasd","@dsa","@sdad"] # } # }, # "token": "4b917j8pzmwu5c6irelftvdn3q0gya2kxhsotdej6zzqxodnp5bmkx1uid8y" # } #设置跨域传参 app.add_middleware( CORSMiddleware, allow_origins=origins, #设置允许的origins来源 allow_credentials=True, allow_methods=["*"], # 设置允许跨域的http方法,比如 get、post、put等。 allow_headers=["*"]) #允许跨域的headers,可以用来鉴别来源等作用。 # 定义数据模型 class Markdown(BaseModel): title: str = None text: str = None class At(BaseModel): atMobiles: Set[str] = None # 列表数据 class RequestMap(BaseModel): markdown: Markdown = None msgtype: str = None at: At = None class Item(BaseModel): clientName: str = None handlerName: str = None parmaClassName: str = None requestMap: RequestMap = None token: str = None def set_default(obj): if isinstance(obj, set): return list(obj) raise TypeError @app.post("/send") async def send_dingding(message: Item): msg = message.requestMap.dict() dt = json.dumps(msg, default=set_default) webhook = "https://oapi.dingtalk.com/robot/send?access_token=自己的token" header = { "Content-Type": "application/json", "Charset": "UTF-8" } message_json = json.dumps(msg, default=set_default) info = requests.post(url=webhook,data=message_json,headers=header) return {"status": info.text} if __name__ == "__main__": import uvicorn uvicorn.run(app='main:app', host="0.0.0.0", port=8000, reload=True, debug=True)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通