1. 手工體驗:json
公衆號官網的素材管理新增素材。補充一點,公衆平臺只以MediaID區分素材,MediaID不等於素材的文件名。MediaID只能經過接口查詢,公衆平臺官網看到的是素材的文件名api
2. 接口實現增刪查微信
1. 永久圖片素材新增後,將帶有URL返回給開發者,開發者能夠在騰訊系域名內使用(騰訊系域名外使用,圖片將被屏蔽)。curl 二、公衆號的素材庫保存總數量有上限:圖文消息素材、圖片素材上限爲100000,其餘類型爲1000。ide 三、素材的格式大小等要求與公衆平臺官網一致:post 圖片(image): 2M,支持bmp/png/jpeg/jpg/gif格式url 語音(voice):2M,播放長度不超過60s,mp3/wma/wav/amr格式spa 視頻(video):10MB,支持MP4格式code 縮略圖(thumb):64KB,支持JPG格式orm 四、圖文消息的具體內容中,微信後臺將過濾外部的圖片連接,圖片url需經過"上傳圖文消息內的圖片獲取URL"接口上傳圖片獲取。 五、"上傳圖文消息內的圖片獲取URL"接口所上傳的圖片,不佔用公衆號的素材庫中圖片數量的100000個的限制,圖片僅支持jpg/png格式,大小必須在1MB如下。 六、圖文消息支持正文中插入本身賬號和其餘公衆號已羣發文章連接的能力。 |
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