首页 课程中心 问答&分享 读书 公众号框架 HUI H.JS 开放源 登录 & 注册
 《微信公众号开发权威教程》

除了3天就会失效的临时素材外,开发者有时需要永久保存一些素材,届时就可以通过本接口新增永久素材。
最近更新,永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)。
请注意:
1、新增的永久素材也可以在公众平台官网素材管理模块中看到
2、永久素材的数量是有上限的,请谨慎新增。图文消息素材和图片素材的上限为5000,其他类型为1000
3、素材的格式大小等要求与公众平台官网一致。具体是,图片大小不超过2M,支持bmp/png/jpeg/jpg/gif格式,语音大小不超过5M,长度不超过60秒(公众平台官网可以在文章中插入小于30分钟的语音,但这些语音不能用于群发等场景,只能放在文章内,这方面接口暂不支持),支持mp3/wma/wav/amr格式
4、调用该接口需https协议


上传图文消息内的图片获取URL

请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下。

接口调用请求说明
http请求方式: POST
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
调用示例(使用curl命令,用FORM表单方式上传一个图片):
curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"

代码实例

<?php
if(!empty($_FILES['file'])){
    include 'wx.php';
    $wechatObj->getAccessToken();
    //1、上传到服务器
    $targetName = 'uploads/'.$_FILES['file']['name'];
    move_uploaded_file($_FILES['file']['tmp_name'], $targetName);
    //2、同步到微信服务器
    $url = 'https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token='.$wechatObj->accessToken;
    $data = array('media' => '@'.$targetName);
    $ch  = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $res  = curl_exec($ch);
    echo $res;
    $curlStatus = curl_getinfo($ch);
    curl_close($ch);
}
?>
<html>
<head>
<title>demo</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
<meta name="format-detection" content="telephone=no" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" /><br />
    <input type="submit" value="上传" />
</form>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript"></script>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script>
</html>

其中url就是上传图片的URL,可用于后续群发中,放置到图文消息中。


新增其他类型永久素材
接口调用请求说明
通过POST表单来调用接口,表单id为media,包含需要上传的素材内容,有filename、filelength、content-type等信息。请注意:图片素材将进入公众平台官网素材管理模块中的默认分组。

http请求方式: POST,需使用https
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN
调用示例(使用curl命令,用FORM表单方式新增一个其他类型的永久素材,curl命令的使用请自行查阅资料)

参数说明

新增永久视频素材需特别注意

在上传视频素材时需要POST另一个表单,id为description,包含素材的描述信息,内容格式为JSON,格式如下:
{
"title":VIDEO_TITLE,
"introduction":INTRODUCTION
}


新增永久视频素材的调用示例

curl "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN" 
-F media=@media.file -F  description='{"title":VIDEO_TITLE, "introduction":INTRODUCTION}'

返回说明

{
  "media_id":MEDIA_ID,
  "url":URL
}

错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):

{"errcode":40007,"errmsg":"invalid media_id"}


书籍目录  (请点击阅读)