# -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals import requests from wechatpy.client.api.base import BaseWeChatAPI class WeChatMedia(BaseWeChatAPI): def upload(self, media_type, media_file): """ 上传临时素材文件 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6 :param media_type: 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和普通文件(file) :param media_file: 要上传的文件,一个 File-object :return: 返回的 JSON 数据包 """ return self._post( 'media/upload', params={ 'type': media_type }, files={ 'media': media_file } ) def upload_image(self, media_file): """ 上传卡券logo :param media_file: 要上传的文件 :return: """ return self._post( 'media/uploadimg', params={ 'type': 'card_logo' }, files={ 'media': media_file } ) def download(self, media_id): """ 获取临时素材文件 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6 :param media_id: 媒体文件 ID :return: requests 的 Response 实例 """ return requests.get(self.get_url(media_id)) def get_url(self, media_id): """ 获取临时素材下载地址 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6 :param media_id: 媒体文件 ID :return: 临时素材下载地址 """ parts = ( 'https://qyapi.weixin.qq.com/cgi-bin/media/get', '?access_token=', self.access_token, '&media_id=', media_id ) return ''.join(parts)