入门指引之永久素材
1. 手工体验:
公众号官网的素材管理新增素材。补充一点,公众平台只以MediaID区分素材,MediaID不等于素材的文件名。MediaID只能通过接口查询,公众平台官网看到的是素材的文件名
2. 接口实现增删查
1. 永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)。 2、公众号的素材库保存总数量有上限:图文消息素材、图片素材上限为100000,其他类型为1000。 3、素材的格式大小等要求与公众平台官网一致: 图片(image): 2M,支持bmp/png/jpeg/jpg/gif格式 语音(voice):2M,播放长度不超过60s,mp3/wma/wav/amr格式 视频(video):10MB,支持MP4格式 缩略图(thumb):64KB,支持JPG格式 4、图文消息的具体内容中,微信后台将过滤外部的图片链接,图片url需通过"上传图文消息内的图片获取URL"接口上传图片获取。 5、"上传图文消息内的图片获取URL"接口所上传的图片,不占用公众号的素材库中图片数量的100000个的限制,图片仅支持jpg/png格式,大小必须在1MB以下。 6、图文消息支持正文中插入自己帐号和其他公众号已群发文章链接的能力。 |
- 接口添加图文消息实例(这个我实验了好久。才成功一个简单的。后面会继续实践,弄个内容丰富的图文)
def add_news(self, access_token, news): postUrl = "https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=%s" % access_token r = requests.post(postUrl,json=news) return r.json()
{'media_id': '22XK-TNtUReo6-F892ZrbGcMGMrjAvsAcwthxgZA_5w'} 图文
一个问题:当我开启评论功能时,就会报没有评论权限的错误。我需要找相关资料了解一下什么条件的图文具有评论功能
- 接口添加图片消息实例
def add_media(self,access_token,filepath,mediatype): #上传文件 f = open(filepath, 'rb') param = {'media': f} postUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=%s&type=%s"% (access_token,mediatype) r = requests.post(postUrl,files=param,headers={'Content-Type':'multipart/form-data'}) return r.json()
{'media_id': '22XK-TNtUReo6-F892ZrbGrXb2lqpwwmskWMEtzmeQo',
'url': 'http://mmbiz.qpic.cn/mmbiz_jpg/8lZUaZmnB8T6UicxzJdxoLdzELe1aj05mNZLg0Nm8l2fuyn1dc5g37j4soeGPCfyN0QDGm2H551dHI2T2Msa84A/0?wx_fmt=jpeg'}
- 接口添加视频消息实例
def add_media(self,access_token,filepath,mediatype): #上传文件 f = open(filepath, 'rb') param = {'media': f} data={} if mediatype == 'video': data['description'] = '{"title":"Angela","introduction":"eat noodle"}' #字符串形式的dict postUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=%s&type=%s"% (access_token,mediatype) r = requests.post(postUrl,data =data,files=param,headers={'Content-Type':'multipart/form-data'}) return r.json() #调用: imagePath = r"E:\MayWorld\May收集的图片\noodle.mp4" r= myMeterial.add_media(accessToken,imagePath,'video')
#返回:
{'media_id': '22XK-TNtUReo6-F892ZrbPpA7VCf9oYPpj5sPLjG69I'}
- 接口添加语音消息实例,参考上面的视频代码。
myMeterial = Meterial() accessToken = basic.Basic().get_access_token() imagePath = r"E:\MayWorld\May收集的图片\angela.mp3" #中文命名 r= myMeterial.add_media(accessToken,imagePath,'voice') print(r) #输出: {'media_id': '22XK-TNtUReo6-F892ZrbGtuu9X5u15o-OIDzTeBoNQ'}
- 接口获取上传的永久素材
def get_meterial(self,access_token,media_id): postUrl = "https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=%s"% access_token params ={'media_id':media_id } r = requests.post(postUrl,json=params) return r.json() #根据 上传的素材的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, }
其他类型的素材消息,则响应的直接为素材的内容,开发者可以自行保存为文件
curl "https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN" -d '{"media_id":"61224425"}' > file