python 如何实现调用微信公众号上传图片功能

首先,我们从微信公众号开发文档里可以到接口地址,以及参数

获取access token https
请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回值{"access_token":"ACCESS_TOKEN","expires_in":7200}        

下面,我们用python来实现一下, 我这里,建了一个UploadPic 类,定义了一个getAccessToken函数,用以获取access_token值,这个值我们下面需要用到

    def __init__(self):
        self.grant_type = "client_credential"  #获取access_token填写client_credential
        self.appid = "你自己的appid"     #第三方用户唯一凭证
        self.secret = "你自己的secret"    #第三方用户唯一凭证密钥,即appsecret
        self.type = "image"  #媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
        self.media = "" #form-data中媒体文件标识,有filename、filelength、content-type等信息

    def getAccessToken(self):
        url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type={self.grant_type}&appid={self.appid}&secret={self.secret}"

        response = requests.get(url)

        data = response.json()

        access_token = data.get("access_token")

        return access_token
调用接口,上传
http请求方式:POST/FORM,
使用https https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE

下面我们实现上传代码,并将获得文件上传后返回的地址,保存到output.txt文件中。

    def upload(self):
        token = self.getAccessToken()
        url = f"https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={token}"

        #从wximages文件夹,获取文件名
        image_folder = './images'  # 替换为你的图片文件夹路径
        files = {}
        imageurls = ""
        for filepath in glob.glob(os.path.join(image_folder, '*.png')):
            filename = os.path.basename(filepath)
            files = {f'media_{filename}': open(filepath, 'rb')}
            response = requests.post(url, files=files)
            data = response.json()
            imageurl = data.get('url')

            imageurls += imageurl+'\n'

        with open("output.txt", 'w') as f:
            f.write(imageurls)
        print(f'Content written to output.txt successfully.')

注意: 微信公众号上传素材接口,用的上传永久素材,每次只能上传一个素材信息。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值