入门指引之上传临时素材

不打扰是莪最后的温柔 提交于 2019-12-01 11:44:04

公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过MediaID来进行的。譬如实现“图”尚往来中,粉丝给公众号发送图片消息,便产生一临时素材。

因为永久素材有数量的限制,但是公众号又需要临时性使用一些素材,因而产生了临时素材。这类素材不在微信公众平台后台长期存储,所以在公众平台官网的素材管理中查询不到,但是可以通过接口对其操作。

接口操作:

http请求方式:POST/FORM,使用https
https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):
curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"Type: 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)

代码:获取token的代码,请参考上一篇

# -*- coding: utf-8 -*-
# filename: media.py
from basic import Basic
import urllib.request
import requests
import json
import os
class Media(object):
    def upload(self, accessToken, filePath, mediaType):
        openFile = open(filePath, "rb")
        param = {'media': openFile}
        postUrl = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s" % (accessToken, mediaType)
        r = requests.post(postUrl, files=param)
        print(r.json())
        return  r.json() # 在python中竟然直接类型是dict     #命令行方式
        # cmd='curl -F media=@%s "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s"' %(
        #     filtPath,accessToken,mediaType
        # )
        # print(os.system(cmd))#filePath: 是自己电脑上,真实的临时素材位置.

返回的值为:可以直接拿到 media_id的值

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!