zoukankan      html  css  js  c++  java
  • 入门指引之上传临时素材

    公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过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的值

    获取临时素材:

    开发者如何保存粉丝发送的图片呢?接口文档:获取临时素材接口,为方便理解,从最简单浏览器获取素材的方法入手,根据实际情况,浏览器输入网址:

    https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID (自行替换数据)

    代码:

        def download(self,accessToken,media_id):
            url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s"%(accessToken,media_id)
            r = requests.get(url)
            buffer = r.content
            mediaFile = open("test_media.jpg", "wb")
            mediaFile.write(buffer)
            print("get successful")
  • 相关阅读:
    I.MX6 Surfaceflinger 机制
    理解 Android Fragment
    RPi 2B DDNS 动态域名
    RPi 2B IPC webcam server
    理解 Android MVP 开发模式
    I.MX6 system.img unpack repack
    can't set android permissions
    VMware Ubuntu 共享文件夹
    解决oracle数据库连接不上的问题
    perfect-scrollbar示例
  • 原文地址:https://www.cnblogs.com/ahMay/p/11683701.html
Copyright © 2011-2022 走看看