前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业微信上传 带中文名称的 临时素材资源 报错 44001:empty media data

企业微信上传 带中文名称的 临时素材资源 报错 44001:empty media data

作者头像
用户1558882
发布2019-08-08 15:41:16
2.2K0
发布2019-08-08 15:41:16
举报
文章被收录于专栏:RgcRgc

错误原因:urllib3的老版本bug,卸载掉 requests,urllib3,从新安装最新版的requests(此包内部依赖urllib3);

我从新安装的是 requests==2.22.0 及  urllib3==1.25.3 包

上传 临时资源的代码如下(此代码支持 上传的文件 和 用户收到显示的文件 都为中文的 情况):

代码语言:javascript
复制
    def upload_temp_file(self, token, userid, file_abs_path, file_type, file_name):
        """
        上传 临时素材资源
        接口文档地址:https://work.weixin.qq.com/api/doc#90000/90135/90253

        :param token: 企业微信的token
        :param userid: 用户企业微信id
        :param file_abs_path: 需要上传文件的绝对路径
        :param file_type: 文件类型
        :param file_name: 用户收到文件时显示的文件名
        :return:bool,str
        """

        # 校验 file_type
        support_file_type = ['image', 'voice', 'video', 'file']
        if file_type not in support_file_type:
            log.error(f'error file type,only support {support_file_type}')
            return False, None

        # 文件名为中文的bug解决方法:https://blog.csdn.net/u013250071/article/details/82493892
        file_upload_result = requests.post(
            'https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={}&type={}'.format(token, file_type),
            files={'media': (file_name, open(file_abs_path, 'rb'), '', {})}
        )

企业微信发送结果为:

总结:

1.对接第三方接口,通过代码对接时出现问题,就用 postman等 工具进行对接,如果使用工具对接没有问题,极大可能是 代码问题,不是第三方平台垃圾;

2.别忘了 考虑可能 是 使用的开源包的bug,如果 百度或谷歌 关键字  (python 企业微信 上传临时素材 44001 中文 empty media data)找不到相关答案;就试着用其他关键字进行查找 如 (python requests post 中文文件);

3.实在找不到bug,就把用的包 卸载 从装最新的,毕竟可能会 之前使用的是老版本的未修复bug的包

相关连接:

代码语言:javascript
复制
https://blog.csdn.net/u013250071/article/details/82493892
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档