訂閱號服務開發02-素材資源管理

@python

wechatpy 介紹

在章節《訂閱號開發環境》中,已經安裝了wechatpy,wechatpy 是一個微信 (WeChat) 的第三方 Python SDK, 實現了微信公衆號、企業微信和微信支付等 API。
參考文檔:https://wechatpy.readthedocs.io/zh_CN/master/index.htmlapi

class WeChatClient(BaseWeChatClient):

    """
    微信 API 操做類
    經過這個類能夠操做微信 API,發送主動消息、羣發消息和建立自定義菜單等。
    """

在本章節中,先以素材資源管理爲例,先掌握對素材資源的管理,爲後面章節中應答消息,主動發送消息等場景中使用素材資源作準數據準備。服務器

實例化WechatClient

from wechatpy.client import WeChatClient
app = {
    "appid": "wx3a07084cc1a11915",
    "appsecret": "8f9a6bb1f66b59aa705ecd9938a3874c"
}
wx = WeChatClient(app.get("appid"), app.get("appsecret"))

上傳臨時媒體素材接口 media

公衆號常常有須要用到一些臨時性的多媒體素材的場景,例如在使用接口特別是發送消息時,對多媒體文件、多媒體消息的獲取和調用等操做,是經過media_id來進行的。素材管理接口對全部認證的訂閱號和服務號開放。經過本接口,公衆號能夠新增臨時素材(即上傳臨時多媒體文件)。微信

上傳臨時圖片

resp = wx.media.upload("image", open("D://666.png", "rb"))
print(resp)
{
    'type': 'image',
    'media_id': '1pnGyv1G8nGdT2A9Thm70I-n7_cQ9CuE-6Jj3tTGdWxpE6IFU5q1GNS6JHEDynqL',
    'created_at': 1557050593
}

上傳臨時縮略圖

resp = wx.media.upload("thumb", open("D://wx.jpg", "rb"))
print(resp)
{
    'type': 'thumb',
    'thumb_media_id': 'StquJqb_PqfYLtE1hwy4UcZGNlncMggH_DreS0YEI8uDCywvPzfQg8yYdsPpi1Tc',
    'created_at': 1557051046
}

上傳臨時視頻

resp = wx.media.upload("video", open("D://hello.mp4", "rb"))
print(resp)
{
    'type': 'video',
    'media_id': 'jCMhWTXbm90l0zWFirVwHPzWi_SO6A4lnqqcj_91fxKWkHdQnyZY14uFJQYJHLcC',
    'created_at': 1557050806
}

上傳永久媒體素材接口 material

對於經常使用的素材,開發者可經過本接口上傳到微信服務器,永久使用。新增的永久素材也能夠在公衆平臺官網素材管理模塊中查詢管理。app

上傳永久圖片

resp = wx.material.add("image",open("D://666.png","rb"))
print(resp)
{
    'media_id': 'BzzIfj9NcYYTuaPR_j133jbk4KxYuPvhoZx68usaDi0',
    'url': 'http://mmbiz.qpic.cn/mmbiz_png/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibQejDaVQMIicE6Wa6v3O5EUsfA3CNumdQAdsx2HrCDrmX6f6zaPk4reg/0?wx_fmt=png'
}

上傳永久縮略圖

resp = wx.material.add("thumb",open("D://wx.jpg","rb"))
print(resp)
{
    'media_id': 'BzzIfj9NcYYTuaPR_j133nS16LBGp7_ZcN5o9ihrBDw',
    'url': 'http://mmbiz.qpic.cn/mmbiz_jpg/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibqwCkTuX97EFSfqqbzYVfK8Em7WdHCicMta8sMoUJCLSTLoMjUJkpYsw/0?wx_fmt=jpeg'
}

上傳永久視頻

resp = wx.material.add("video",open("D://hello.mp4","rb"),title="視頻標題...",introduction="視頻簡介...")
print(resp)
{'media_id': 'BzzIfj9NcYYTuaPR_j133ietkr1Oy2009whI6vdTLR8'}

上傳圖文消息(羣發消息)內的圖片

resp = wx.media.upload_image(open("D://666.png","rb"))
print(resp)
http://mmbiz.qpic.cn/mmbiz_png/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibQejDaVQMIicE6Wa6v3O5EUsfA3CNumdQAdsx2HrCDrmX6f6zaPk4reg/0

新增永久圖文素材

resp = wx.material.add_articles(articles=[
        {
            "thumb_media_id": "%s" % wx.material.add("thumb", open("D://wx.jpg", "rb")).get("media_id"),  # 圖文消息的封面圖片素材id(必須是永久mediaID)
            "author": "觀小魚",
            "title": "Python實戰",
            "content": "python實戰總結<br><img src=%s>" % wx.media.upload_image(open("D://666.png", "rb")),  # 圖文消息的具體內容,支持HTML標籤
            "digest": "經過python實戰項目,快速掌握python開發",  # 圖文消息的摘要
            "content_source_url": "https://www.kancloud.cn/@guanfuchang",  # 圖文消息的原文地址
            "show_cover_pic": 1,  # 顯示封面
            "need_open_comment": 1,  # 打開評論
            "only_fans_can_comment": 1  # 粉絲才能夠評論
        }
    ])
print(resp)
{
'media_id': 'BzzIfj9NcYYTuaPR_j133mW-veyn3sNRANnduEtdnss'
}

獲取素材

獲取臨時素材下載地址

公衆號能夠使用本接口獲取臨時素材(即下載臨時的多媒體文件),注意:媒體文件在微信後臺保存時間爲3天,即3天后media_id失效。ide

resp = wx.media.get_url("1pnGyv1G8nGdT2A9Thm70I-n7_cQ9CuE-6Jj3tTGdWxpE6IFU5q1GNS6JHEDynqL")
print(resp)
https://api.weixin.qq.com/cgi-bin/media/get?access_token=21_yblTNnELBMPr73XmbLOaeVNjSKsruUGFv9Y4amhVVrbelomKcFbKb0wfLrJvrpoX-7K-vt8i-nWs9zCmEx7FVV4T9oq8xAV3n7TndwNzWa_kkVPGdzbq_yj8hbQCYWgAIAVRP&media_id=1pnGyv1G8nGdT2A9Thm70I-n7_cQ9CuE-6Jj3tTGdWxpE6IFU5q1GNS6JHEDynqL

批量獲取永久素材列表 "image","voice","video","news"

在新增了永久素材後,開發者能夠分類型獲取永久素材的列表。測試

resp = wx.material.batchget(media_type="news",offset=0,count=2)
print(resp)
{
    'item': [{
        'media_id': 'BzzIfj9NcYYTuaPR_j133mW-veyn3sNRANnduEtdnss',
        'content': {
            'news_item': [{
                'title': 'Python實戰',
                'author': '觀小魚',
                'digest': '經過python實戰項目,快速掌握python開發',
                'content': 'python實戰總結<br  /><img data-src="http://mmbiz.qpic.cn/mmbiz_png/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibQejDaVQMIicE6Wa6v3O5EUsfA3CNumdQAdsx2HrCDrmX6f6zaPk4reg/0%3E">',
                'content_source_url': 'https://www.kancloud.cn/@guanfuchang',
                'thumb_media_id': 'BzzIfj9NcYYTuaPR_j133keapTcjqt-9xZQkkN0qQ9Q',
                'show_cover_pic': 1,
                'url': 'http://mp.weixin.qq.com/s?__biz=MzA3NzgzMzA5Nw==&mid=100000028&idx=1&sn=01235aff2dee3ba7941ee3ff0be73444&chksm=1f4ab7fa283d3eec80b03af52b3b51a3affa140830a8dcb4baba7ec1c480055acab98a4e610f#rd',
                'thumb_url': 'http://mmbiz.qpic.cn/mmbiz_jpg/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibqwCkTuX97EFSfqqbzYVfK8Em7WdHCicMta8sMoUJCLSTLoMjUJkpYsw/0?wx_fmt=jpeg',
                'need_open_comment': 1,
                'only_fans_can_comment': 1
            }],
            'create_time': 1557115885,
            'update_time': 1557115885
        },
        'update_time': 1557115885
    }, {
        'media_id': 'BzzIfj9NcYYTuaPR_j133kSfaJsfBYCH8seLSfKaXGg',
        'content': {
            'news_item': [{
                'title': 'Happy Day',
                'author': 'xxx',
                'digest': 'digest',
                'content': 'content',
                'content_source_url': 'http://www.qq.com',
                'thumb_media_id': 'BzzIfj9NcYYTuaPR_j133h2JwAhVA-Z-fLxFgOBY-Nw',
                'show_cover_pic': 1,
                'url': 'http://mp.weixin.qq.com/s?__biz=MzA3NzgzMzA5Nw==&mid=100000004&idx=1&sn=6ed39350fdb884b51d997ef04ed36b43&chksm=1f4ab7e2283d3ef417e4855ed52c88927a3a8ad0301289b8e0dfcb1f65fef9c412b6eb768b1b#rd',
                'thumb_url': 'http://mmbiz.qpic.cn/mmbiz_png/QuFmLYzPJ2DK93uoeUAibJSqQBmgeR1uhdicrQKxT3QzZVdfWUIHa6fmFfuaibLNibqYGVHQcwyzCbsbPWTN82Vs9g/0?wx_fmt=png',
                'need_open_comment': 1,
                'only_fans_can_comment': 1
            }],
            'create_time': 1556162229,
            'update_time': 1556162229
        },
        'update_time': 1556162229
    }],
    'total_count': 2,
    'item_count': 2
}

獲取永久素材

在新增了永久素材後,開發者能夠根據media_id經過本接口下載永久素材。公衆號在公衆平臺官網素材管理模塊中新建的永久素材,可經過"獲取素材列表"獲知素材的media_id。微信支付

resp = wx.material.get(media_id="BzzIfj9NcYYTuaPR_j133mW-veyn3sNRANnduEtdnss")
print(resp)
[{
    'title': 'Python實戰',
    'author': '觀小魚',
    'digest': '經過python實戰項目,快速掌握python開發',
    'content': 'python實戰總結<br  /><img data-src="http://mmbiz.qpic.cn/mmbiz_png/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibQejDaVQMIicE6Wa6v3O5EUsfA3CNumdQAdsx2HrCDrmX6f6zaPk4reg/0%3E">',
    'content_source_url': 'https://www.kancloud.cn/@guanfuchang',
    'thumb_media_id': 'BzzIfj9NcYYTuaPR_j133keapTcjqt-9xZQkkN0qQ9Q',
    'show_cover_pic': 1,
    'url': 'http://mp.weixin.qq.com/s?__biz=MzA3NzgzMzA5Nw==&mid=100000028&idx=1&sn=01235aff2dee3ba7941ee3ff0be73444&chksm=1f4ab7fa283d3eec80b03af52b3b51a3affa140830a8dcb4baba7ec1c480055acab98a4e610f#rd',
    'thumb_url': 'http://mmbiz.qpic.cn/mmbiz_jpg/QuFmLYzPJ2BbITcU1VNpEhH8XUsXbtcibqwCkTuX97EFSfqqbzYVfK8Em7WdHCicMta8sMoUJCLSTLoMjUJkpYsw/0?wx_fmt=jpeg',
    'need_open_comment': 1,
    'only_fans_can_comment': 1
}]

[warning] 更多接口信息,請參考源碼WeChatClienturl


:-:
微信掃一掃,關注「python測試開發圈」,獲取更多測試開發分享!

相關文章
相關標籤/搜索