Skip to main content
Glama
media_upload_guide.md5.95 kB
# 微信公众号多媒体上传功能使用指南 xiayan-mcp 现已支持完整的微信公众号多媒体上传接口,包括临时素材和永久素材的上传、管理等功能。 ## 新增功能 ### 1. 临时素材上传 上传临时媒体文件到微信服务器,有效期为3天。 **支持类型:** image(图片)、voice(语音)、video(视频)、thumb(缩略图) **使用方法:** ```python # 上传临时图片 media_id = await publisher.upload_temp_media("path/to/image.jpg", "image") ``` ### 2. 永久素材上传 上传永久素材到微信服务器,可永久保存。 **支持类型:** image(图片)、voice(语音)、video(视频)、thumb(缩略图) **使用方法:** ```python # 上传永久图片 media_id = await publisher.upload_permanent_material("path/to/image.jpg", "image") # 上传永久视频(需要提供描述信息) video_description = { "title": "视频标题", "introduction": "视频简介" } media_id = await publisher.upload_permanent_material( "path/to/video.mp4", "video", video_description ) ``` ### 3. 图文消息图片上传 专门用于图文消息中的图片上传,返回可直接在图文内容中使用的URL。 **使用方法:** ```python # 上传图文消息中的图片 image_url = await publisher.upload_image_for_news("path/to/image.jpg") ``` ### 4. 素材管理 获取和删除永久素材列表。 **使用方法:** ```python # 获取永久素材列表 materials = await publisher.get_media_list("image", permanent=True) # 获取临时素材数量 counts = await publisher.get_media_list("image", permanent=False) # 删除永久素材 success = await publisher.delete_permanent_material("media_id_here") ``` ### 5. 增强的文章发布 支持在发布文章时选择封面上传类型(临时/永久)和其他高级选项。 **使用方法:** ```python # 发布文章,使用永久封面图片 result = await publisher.publish_to_draft( title="文章标题", content="HTML内容", cover="封面图片路径", permanent_cover=True, # 使用永久素材 author="作者名", need_open_comment=0, # 关闭评论 only_fans_can_comment=0 ) ``` ## MCP工具接口 xiayan-mcp 现在提供以下MCP工具: ### 1. `upload_temp_media` - **描述:** 上传临时媒体文件到微信服务器(有效期3天) - **参数:** - `media_path`(必需):媒体文件路径(本地或远程URL) - `media_type`(可选):媒体类型(image/voice/video/thumb),默认为image ### 2. `upload_permanent_material` - **描述:** 上传永久素材到微信服务器 - **参数:** - `media_path`(必需):媒体文件路径(本地或远程URL) - `media_type`(可选):媒体类型(image/voice/video/thumb),默认为image - `description`(可选):视频素材的描述信息,格式为`{"title": "标题", "introduction": "简介"}` ### 3. `upload_image_for_news` - **描述:** 上传专门用于图文消息的图片,返回可用的URL - **参数:** - `image_path`(必需):图片文件路径(本地或远程URL) ### 4. `get_media_list` - **描述:** 获取微信服务器上的媒体素材列表 - **参数:** - `media_type`(可选):媒体类型(image/voice/video/news),默认为image - `permanent`(可选):是否获取永久素材,默认为true - `offset`(可选):分页起始位置,默认为0 - `count`(可选):获取数量(1-20),默认为20 ### 5. `delete_permanent_material` - **描述:** 删除永久素材 - **参数:** - `media_id`(必需):要删除的素材的media_id ### 6. `publish_article`(增强) - **新增参数:** - `permanent_cover`(可选):封面是否使用永久素材,默认为false - `author`(可选):文章作者,默认为"Xiayan MCP" - `need_open_comment`(可选):是否开启评论,默认为0(关闭) - `only_fans_can_comment`(可选):是否仅粉丝可评论,默认为0(否) ## 使用示例 ### 示例1:上传临时图片并发布文章 ``` # 上传临时图片 media_id = await upload_temp_media(media_path="/path/to/image.jpg", media_type="image") # 发布文章,使用临时封面 await publish_article( content="# 我的文章\n\n这是一篇测试文章。", theme_id="default", permanent_cover=False, author="我的名字" ) ``` ### 示例2:上传永久图片并管理素材 ``` # 上传永久图片 media_id = await upload_permanent_material( media_path="/path/to/image.jpg", media_type="image" ) # 获取图片素材列表 materials = await get_media_list(media_type="image", permanent=True) # 删除不再需要的素材 await delete_permanent_material(media_id="要删除的media_id") ``` ### 示例3:上传图文消息图片并使用 ``` # 上传图文消息图片 image_url = await upload_image_for_news(image_path="/path/to/image.jpg") # 在文章内容中使用返回的URL article_content = f""" # 文章标题 文章正文内容... ![图片描述]({image_url}) 更多内容... """ ``` ## 注意事项 1. **权限要求:** 使用前请确保微信公众号已开通相应功能权限 2. **文件限制:** 图片文件大小不超过2MB,支持PNG、JPG格式 3. **临时素材:** 临时素材有效期3天,过期自动删除 4. **永久素材:** 永久素材数量有限制,建议定期清理 5. **网络图片:** 支持从网络URL下载后上传,但需要确保URL可访问 6. **错误处理:** 所有操作都包含完善的错误处理和提示信息 ## 测试方法 运行项目中的测试脚本验证功能: ```bash # 设置环境变量 export WECHAT_APP_ID="your_app_id" export WECHAT_APP_SECRET="your_app_secret" # 运行测试脚本 python test_media_upload.py ``` 请确保在测试前准备好测试用的图片文件,并修改测试脚本中的文件路径。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/herofox2024/xiayan-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server