微信公众号关于永久图文素材相关接口下线,WeRoBot做相应的更新
WeRoBot由于原作者暂时未更新,暂时亲自上手,更改源代码;
主要涉及的文件是:werobot/client.py
直接替换即可
##werobot/client.py
# -*- coding: utf-8 -*-
class Client(object):
"""
微信 API 操作类
通过这个类可以方便的通过微信 API 进行一系列操作,比如主动发送消息、创建自定义菜单等
"""
def __init__(self, config):
self.config = config
self._token = None
self.token_expires_at = None
##其他无变更,省略。。。
def get_media_list(self, media_type, offset, count):
"""
获取素材列表。
:param media_type: 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)
:param offset: 从全部素材的该偏移位置开始返回,0表示从第一个素材返回
:param count: 返回素材的数量,取值在1到20之间
:return: 返回的 JSON 数据包
"""
return self.post(
# url="https://api.weixin.qq.com/cgi-bin/material/batchget_material",
url="https://api.weixin.qq.com/cgi-bin/draft/batchget",
# data={
# "type": media_type,
# "offset": offset,
# "count": count
# }
data={
"no_content": media_type,
"offset": offset,
"count": count
}
)
def download_permanent_media(self, media_id):
"""
获取永久素材。
:param media_id: 媒体文件 ID
:return: requests 的 Response 实例
"""
return requests.post(
# url="https://api.weixin.qq.com/cgi-bin/material/get_material",
url="https://api.weixin.qq.com/cgi-bin/draft/get",
params={"access_token": self.token},
data=_json.dumps({
"media_id": media_id
}, ensure_ascii=False).encode("utf-8")
)
def add_news(self, articles):
"""
新增永久图文素材::
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结构,最多8段
]
client.add_news(articles)
:param articles: 如示例中的数组
:return: 返回的 JSON 数据包
"""
return self.post(
# url="https://api.weixin.qq.com/cgi-bin/material/add_news",
url="https://api.weixin.qq.com/cgi-bin/draft/add",
data={"articles": articles}
)