微信xml卡片消息生成器,微信xml卡片生成啊制作工具,卡片消息一键发送【python】

简介: 这个实现包含三个主要模块:核心生成器类、预定义模板类和主程序入口。核心类负责获取微信

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1133

这个实现包含三个主要模块:核心生成器类、预定义模板类和主程序入口。核心类负责获取微信access_token、生成XML格式的卡片消息以及发送消息。模板类提供了几种常见的卡片模板,主程序演示了如何使用这些功能。使用时需要替换示例中的微信公众号配置信息。

import xml.etree.ElementTree as ET
import time
import hashlib
import requests

class WXCardGenerator:
def init(self, app_id, app_secret):
self.app_id = app_id
self.app_secret = app_secret
self.access_token = None
self.token_expire = 0

def _get_access_token(self):
    if time.time() < self.token_expire and self.access_token:
        return self.access_token

    url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={self.app_id}&secret={self.app_secret}"
    response = requests.get(url)
    data = response.json()
    self.access_token = data['access_token']
    self.token_expire = time.time() + data['expires_in'] - 300
    return self.access_token

def generate_card_xml(self, template_id, data_dict, to_user, from_user):
    root = ET.Element('xml')
    ET.SubElement(root, 'ToUserName').text = to_user
    ET.SubElement(root, 'FromUserName').text = from_user
    ET.SubElement(root, 'CreateTime').text = str(int(time.time()))
    ET.SubElement(root, 'MsgType').text = 'news'
    ET.SubElement(root, 'ArticleCount').text = '1'

    articles = ET.SubElement(root, 'Articles')
    item = ET.SubElement(articles, 'item')

    for key, value in data_dict.items():
        if key == 'Title':
            ET.SubElement(item, 'Title').text = value
        elif key == 'Description':
            ET.SubElement(item, 'Description').text = value
        elif key == 'PicUrl':
            ET.SubElement(item, 'PicUrl').text = value
        elif key == 'Url':
            ET.SubElement(item, 'Url').text = value

    return ET.tostring(root, encoding='unicode', method='xml')

def send_card_message(self, openid, xml_content):
    access_token = self._get_access_token()
    url = f"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={access_token}"
    headers = {'Content-Type': 'application/xml'}
    response = requests.post(url, data=xml_content.encode('utf-8'), headers=headers)
    return response.json()

CardTemplates:
@staticmethod
def news_template():
return {
'Title': '新闻资讯',
'Description': '点击查看最新新闻动态',
'PicUrl': 'https://example.com/news.jpg',
'Url': 'https://example.com/news'
}

@staticmethod
def product_template():
    return {
        'Title': '新品上市',
        'Description': '限时优惠,立即购买',
        'PicUrl': 'https://example.com/product.jpg',
        'Url': 'https://example.com/product'
    }

@staticmethod
def event_template():
    return {
        'Title': '活动通知',
        'Description': '参与活动赢取大奖',
        'PicUrl': 'https://example.com/event.jpg',
        'Url': 'https://example.com/event'
    }

name == "main":

# 配置微信公众号信息
APP_ID = 'your_app_id'
APP_SECRET = 'your_app_secret'
TO_USER = 'target_openid'
FROM_USER = 'your_wechat_id'

# 初始化生成器
generator = WXCardGenerator(APP_ID, APP_SECRET)

# 选择模板并生成XML
template = CardTemplates.news_template()
xml_content = generator.generate_card_xml('template_001', template, TO_USER, FROM_USER)

# 发送卡片消息
result = generator.send_card_message(TO_USER, xml_content)
print("发送结果:", result)

print("生成的XML内容:")
print(xml_content)
相关文章
|
4月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
5月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
245 92
|
6月前
|
数据采集 存储 C++
Python异步爬虫(aiohttp)加速微信公众号图片下载
Python异步爬虫(aiohttp)加速微信公众号图片下载
|
6月前
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
4月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
367 3
|
5月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1124 1
|
4月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
4月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
943 0
|
5月前
|
数据采集 监控 调度
应对频率限制:设计智能延迟的微信读书Python爬虫
应对频率限制:设计智能延迟的微信读书Python爬虫
|
5月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制

推荐镜像

更多