python推送企业微信机器人5-文件类型

参数说明

1. 文件发送接口参数

参数是否必填说明
msgtype消息类型,此时固定为file
content文件id,通过下文的文件上传接口获取

2. 文件上传接口参数

素材上传得到media_id,该media_id仅三天内有效
media_id只能是对应上传文件的机器人可以使用

请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE
上传的文件限制:要求文件大小在5B~20M之间
使用multipart/form-data POST上传文件, 文件标识名为”media”

参数是否必填说明
key调用接口凭证, 机器人webhookurl中的key参数
type固定传file

3. 返回参数

{
   "errcode": 0,
   "errmsg": "ok",
   "type": "file",
   "media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
   "created_at": "1380000000"
}
参数是否必填说明
key媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)
media_id媒体文件上传后获取的唯一标识,3天内有效
created_at媒体文件上传时间戳

效果展示

在这里插入图片描述

Demo Code

# -*- coding: utf-8 -*-
# coding:unicode_escape
# Created on 2021年12月31日

# @author: LinHuang(Joker)

import requests
import json


# mian function
def main():

    oFileUploadUrl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=50d640d9-9ad6-4d39-98aa-c94c2002e6d4&type=file'
    oWX_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=50d640d9-9ad6-4d39-98aa-c94c2002e6d4'
    filePath='C:\\Users\\QDM\Desktop\\722513_E_20211211.pdf'
    filename="722513_E_20211211.pdf"
    payload={'Content-Disposition': 'form-data','name': 'media','filename': filename}
    files=[('boundary', ('%s' % filename, open('%s' % filePath, 'rb'), 'application/pdf'))]
    headers = {}

    try:
        response = requests.request("POST", oFileUploadUrl, headers=headers, data=payload, files=files,timeout=5)
    except Exception as e:
        print(e.args[0])

    json_res = response.json()
    media_id = json_res['media_id']
    if media_id != "":
        data = {"msgtype": "file",
                "file": {
                    "media_id": media_id
                }
                }
        headers = {'Content-Type': 'application/json'}  # 指定提交的是json
        try:
            response = requests.post(
                url=oWX_URL, json=data, headers=headers, timeout=5)
        except Exception as e:
            print(e.args[0])


if __name__ == '__main__':

    main()

posted @ 2022-01-05 18:23  linhuang  阅读(7)  评论(0编辑  收藏  举报  来源