微信公众号永久视频素材上传

该博客介绍了如何使用PHP的cURL库来发起POST请求,上传视频文件到微信公众号的素材管理接口。通过设置cURL选项,绕过SSL验证,并使用CURLFile类处理文件上传。最终,调用接口并打印返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里不说如何获取access_token!!! ;下次当独开一篇

curl文件


<?php
    /**
    *  $url string 请求的地址
    *	$data array 请求参数,如果有这个参数,请求类型改为post
    */
    function https_request($url,$data=null){

        $curl = curl_init();
        curl_setopt($curl,CURLOPT_URL,$url);
        curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, FALSE);       
    curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD,FALSE); 
   
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);//不做服务器端的认证
        curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);//不做客户端的认证
  
    if(!empty($data)){
        curl_setopt($curl,CURLOPT_POST,true);
        //curl_setopt($curl,CURLOPT_BINARYTRANSFER,true);
        curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
    }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
        $output= curl_exec($curl);
        curl_close($curl);
        return $output;
    }

上传视频文件

这里做的事情其实有两个:

  1. 初始化curl,打包视频文件
  2. 调用公众号视频文件上传接口,请求方式为post
    <?php
    // 引入上边的方法
    include "func.video.php";
    // get_access_token(); 是自定义的获取access_token的函数
    $access_token=get_access_token();
    //请求的接口地址和参数
    $url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$access_token&type=video";
    $file="./autov.mp4"; //视频文件位置
    $data['media']=new CURLFile($file); // '@'.$file;
    $result=https_request($url,$data);
    var_dump($result);


### 实现微信公众号上传视频功能 在微信公众号开发过程中,上传视频是一个常见的需求。为了实现这一目标,开发者可以利用微信公众平台提供的多媒体文件接口来完成操作。 #### 接口调用说明 当用户向公众账号发送消息时,如果涉及媒体文件(如图片、语音、视频等),则可以通过获取临时素材的方式来进行处理。对于永久素材,则需使用相应的API进行管理[^1]。具体来说,在上传视频方面: - **URL**: `http(s)://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE` - **请求方式**: POST - **参数列表** - access_token (必填): 调用接口凭证 - type (必填): 媒体文件类型,分别有图片(image)、语音(voice)、视频(video) 需要注意的是,这里提到的`type`应设置为`video`以指明要上传的内容是视频文件[^4]。 #### Python代码示例 下面给出一段简单的Python脚本用于演示如何通过API上传视频至微信服务器: ```python import requests from urllib.parse import urlencode def upload_video(file_path, token): url = f"https://api.weixin.qq.com/cgi-bin/material/add_material?{urlencode({'access_token': token,'type':'video'})}" files = { 'media': open(file_path, 'rb') } response = requests.post(url=url, files=files).json() return response['media_id'] if "media_id" in response else None if __name__ == "__main__": ACCESS_TOKEN = "<Your Access Token Here>" VIDEO_PATH = "/path/to/your/video.mp4" media_id = upload_video(VIDEO_PATH, ACCESS_TOKEN) print(f"The uploaded video's Media ID is {media_id}") ``` 此段程序实现了读取本地路径下的视频文件并将其作为二进制流提交给指定的HTTP端点。成功后返回该视频对应的Media_ID以便后续引用或分享[^3]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值