除了3天就会失效的临时素材外,开发者有时需要永久保存一些素材。本节内容如下:
通过本接口新增永久素材。请注意:
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.add_news |
Data | 否 | 微信请求参数,为urlencode之后的JSON格式 |
{
"articles": [{
"title": TITLE,
"thumb_media_id": THUMB_MEDIA_ID,
"author": AUTHOR,
"digest": DIGEST,
"show_cover_pic": SHOW_COVER_PIC(0 / 1),
"content": CONTENT,
"content_source_url": CONTENT_SOURCE_URL
},
//若新增的是多图文素材,则此处应还有几段articles结构
]
}
参数 | 是否必填 | 说明 |
---|---|---|
title | 是 | 标题 |
thumb_media_id | 是 | 图文消息的封面图片素材id(必须是永久mediaID) |
author | 是 | 作者 |
digest | 是 | 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空 |
show_cover_pic | 是 | 是否显示封面,0为false,即不显示,1为true,即显示 |
content | 是 | 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS |
content_source_url | 是 | 图文消息的原文地址,即点击“阅读原文”后的URL |
{
"media_id":MEDIA_ID
}
返回的即为新增的图文消息素材的media_id。
请注意,在图文消息的具体内容中,将过滤外部的图片链接,开发者可以通过下述接口上传图片得到URL,放到图文内容中使用。
请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下。
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=uploadimg
调用示例(使用curl命令,用FORM表单方式上传一个图片):
curl 'http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=uploadimg'
-F media=@test.jpg -F ConnectKey=CONNECTKEY -F access_token=ACCESS_TOKEN
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
media | 是 | form-data中媒体文件标识,有filename、filelength、content-type等信息 |
正常情况下的返回结果为:
{
"url": "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWa/0"
}
其中url就是上传图片的URL,可用于后续群发中,放置到图文消息中。
通过POST表单来调用接口,表单id为media,包含需要上传的素材内容,有filename、filelength、content-type等信息。请注意:图片素材将进入公众平台官网素材管理模块中的默认分组。
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=add_material
调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):
curl 'http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=add_material'
-F media=@test.jpg -F ConnectKey=CONNECTKEY -F access_token=ACCESS_TOKEN -F type=TYPE
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
type | 是 | 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb) |
media | 是 | form-data中媒体文件标识,有filename、filelength、content-type等信息 |
{
"media_id":MEDIA_ID,
"url":URL
}
参数 | 说明 |
---|---|
media_id | 新增的永久素材的media_id |
url | 新增的图片素材的图片URL(仅新增图片素材时会返回该字段) |
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误)
{"errcode":40007,"errmsg":"invalid media_id"}
新增永久视频素材需特别注意
在上传视频素材时需要POST另一个表单,id为description,包含素材的描述信息,内容格式为JSON,格式如下:
{
"title":VIDEO_TITLE,
"introduction":INTRODUCTION
}
新增永久视频素材的调用示例:
curl 'http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=add_material'
-F media=@test.mov -F ConnectKey=CONNECTKEY -F access_token=ACCESS_TOKEN -F type=video
-F description='{"title":VIDEO_TITLE, "introduction":INTRODUCTION}'
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
title | 是 | 视频素材的标题 |
introduction | 是 | 视频素材的描述 |
在新增了永久素材后,开发者可以根据media_id来获取永久素材,需要时也可保存到本地。
接口调用请求说明
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.get_material |
Data | 否 | 微信请求参数,为urlencode之后的JSON格式 |
{
"media_id":MEDIA_ID
}
参数 | 是否必须 | 说明 |
---|---|---|
media_id | 是 | 要获取的素材的media_id |
如果请求的素材为图文消息,则响应如下:
{
"news_item":
[
{
"title":TITLE,
"thumb_media_id"::THUMB_MEDIA_ID,
"show_cover_pic":SHOW_COVER_PIC(0/1),
"author":AUTHOR,
"digest":DIGEST,
"content":CONTENT,
"url":URL,
"content_source_url":CONTENT_SOURCE_URL
},
//多图文消息有多篇文章
]
}
如果返回的是视频消息素材,则内容如下:
{
"title":TITLE,
"description":DESCRIPTION,
"down_url":DOWN_URL,
}
其他类型的素材消息,则响应的直接为素材的内容,开发者可以自行保存为文件
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):
{"errcode":40007,"errmsg":"invalid media_id"}
在新增了永久素材后,开发者可以根据本接口来删除不再需要的永久素材,节省空间。
接口调用请求说明
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.del_material |
Data | 否 | 微信请求参数,为urlencode之后的JSON格式 |
{
"media_id":MEDIA_ID
}
参数 | 是否必须 | 说明 |
---|---|---|
media_id | 是 | 要删除的素材的media_id |
返回说明
{
"errcode":ERRCODE,
"errmsg":ERRMSG
}
正常情况下调用成功时,errcode将为0。
开发者可以通过本接口对永久图文素材进行修改。
接口调用请求说明
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.update_news |
Data | 否 | 微信请求参数,为urlencode之后的JSON格式 |
{
"media_id":MEDIA_ID,
"index":INDEX,
"articles": {
"title": TITLE,
"thumb_media_id": THUMB_MEDIA_ID,
"author": AUTHOR,
"digest": DIGEST,
"show_cover_pic": SHOW_COVER_PIC(0 / 1),
"content": CONTENT,
"content_source_url": CONTENT_SOURCE_URL
}
}
参数 | 是否必须 | 说明 |
---|---|---|
media_id | 是 | 要更新的素材的media_id |
index | 是 | 要更新的文章在图文消息中的位置(多图文消息时,此字段才有意义),第一篇为0 |
title | 是 | 标题 |
thumb_media_id | 是 | 图文消息的封面图片素材id(必须是永久mediaID) |
author | 是 | 作者 |
digest | 是 | 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空 |
show_cover_pic | 是 | 是否显示封面,0为false,即不显示,1为true,即显示 |
content | 是 | 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS |
content_source_url | 是 | 图文消息的原文地址,即点击“阅读原文”后的URL |
返回说明
{
"errcode":ERRCODE,
"errmsg":ERRMSG
}
正常情况下调用成功时,errcode将为0。
开发者可以根据本接口来获取永久素材的列表,需要时也可保存到本地。
接口调用请求说明
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.get_materialcount |
返回说明
{
"voice_count":COUNT,
"video_count":COUNT,
"image_count":COUNT,
"news_count":COUNT
}
参数 | 说明 |
---|---|
voice_count | 语音总数量 |
video_count | 视频总数量 |
image_count | 图片总数量 |
news_count | 图文总数量 |
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):
{"errcode":-1,"errmsg":"system error"}
在新增了永久素材后,开发者可以分类型获取永久素材的列表。
接口调用请求说明
http请求方式: POST,http://xxx.xxx.xxx/ 为自己的网站域名
http://xxx.xxx.xxx/index.php?g=Home&m=ConnectApi&a=proxy
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
ConnectKey | 是 | 开放平台KEY |
apipath | 是 | 本接口固定为:material.batchget_material |
Data | 否 | 微信请求参数,为urlencode之后的JSON格式 |
{
"type":TYPE,
"offset":OFFSET,
"count":COUNT
}
参数 | 是否必须 | 说明 |
---|---|---|
type | 是 | 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news) |
offset | 是 | 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回 |
count | 是 | 返回素材的数量,取值在1到20之间 |
返回说明
永久图文消息素材列表的响应如下:
{
"total_count": TOTAL_COUNT,
"item_count": ITEM_COUNT,
"item": [{
"media_id": MEDIA_ID,
"content": {
"news_item": [{
"title": TITLE,
"thumb_media_id": THUMB_MEDIA_ID,
"show_cover_pic": SHOW_COVER_PIC(0 / 1),
"author": AUTHOR,
"digest": DIGEST,
"content": CONTENT,
"url": URL,
"content_source_url": CONTETN_SOURCE_URL
},
//多图文消息会在此处有多篇文章
]
},
"update_time": UPDATE_TIME
},
//可能有多个图文消息item结构
]
}
其他类型(图片、语音、视频)的返回如下:
{
"total_count": TOTAL_COUNT,
"item_count": ITEM_COUNT,
"item": [{
"media_id": MEDIA_ID,
"name": NAME,
"update_time": UPDATE_TIME,
"url":URL
},
//可能会有多个素材
]
}
参数 | 说明 |
---|---|
total_count | 该类型的素材的总数 |
item_count | 本次调用获取的素材的数量 |
title | 标题 |
thumb_media_id | 图文消息的封面图片素材id(必须是永久mediaID) |
author | 作者 |
digest | 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空 |
show_cover_pic | 是否显示封面,0为false,即不显示,1为true,即显示 |
content | 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS |
content_source_url | 图文消息的原文地址,即点击“阅读原文”后的URL |
update_time | 这篇图文消息素材的最后更新时间 |
name | 文件名称 |
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):
{"errcode":40007,"errmsg":"invalid media_id"}