[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hexsum--Mojo-Weixin":3,"tool-hexsum--Mojo-Weixin":64},[4,18,28,36,44,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[14,13,27],"语言模型",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[27,15,13,14],{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":24,"last_commit_at":42,"category_tags":43,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,27],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":24,"last_commit_at":50,"category_tags":51,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,"2026-04-06T11:09:19",[15,16,52,53,13,54,27,14,55],"视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":17},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[13,15,14,27,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":10,"env_os":96,"env_gpu":97,"env_ram":97,"env_deps":98,"category_tags":107,"github_topics":108,"view_count":24,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":121,"updated_at":122,"faqs":123,"releases":159},4499,"hexsum\u002FMojo-Weixin","Mojo-Weixin","使用Perl语言（不会没关系）编写的个人账号微信\u002Fweixin\u002Fwechat客户端框架（非GUI），可通过插件提供基于HTTP协议的api接口供其他语言或系统调用","Mojo-Weixin 是一个基于 Perl 语言开发的微信个人账号客户端框架，专为非图形界面环境设计。它核心解决了将微信功能转化为可编程接口的问题，让用户无需深入掌握 Perl 语法，即可通过标准的 HTTP 协议调用微信的收发消息、管理好友群组等能力，轻松实现与其他系统或编程语言的集成。\n\n这款工具特别适合开发者、运维工程师以及希望构建自动化工作流的技术爱好者。无论是想打造智能聊天机器人、自动回复助手，还是进行消息数据的多语言对接，Mojo-Weixin 都能提供稳定支持。其独特的技术亮点在于高度模块化的插件体系，内置了包括智能回复（如接入微软小冰）、多语言翻译、知识库问答、远程扫码登录等丰富功能插件。用户只需简单配置甚至一行命令，即可快速部署跨平台（Windows\u002FLinux\u002FMac）的微信服务，极大降低了开发门槛。作为一个开源项目，它严格遵循微信官方原始功能，旨在促进技术交流与合法创新，是连接微信生态与后端服务的优雅桥梁。","Mojo-Weixin v1.4.6 [![Build Status](https:\u002F\u002Ftravis-ci.org\u002Fsjdy521\u002FMojo-Weixin.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fsjdy521\u002FMojo-Weixin) [![API列表](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdoc-API%E5%88%97%E8%A1%A8-brightgreen.svg)](API.md) [![QQ群-498880156](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FQQ%E7%BE%A4-498880156-blue.svg)](http:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=kjVJzo) [![IRC](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FIRC-%E5%AE%98%E6%96%B9%E9%A2%91%E9%81%93-yellow.svg)](http:\u002F\u002Firc.perfi.wang\u002F?channel=#Mojo-Webqq)\n[![LICENSE](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Anti%20996-blue.svg)](https:\u002F\u002Fgithub.com\u002F996icu\u002F996.ICU\u002Fblob\u002Fmaster\u002FLICENSE)\n========================\n\n使用Perl语言编写的微信客户端框架，基于Mojolicious，要求Perl版本5.10+，可通过插件提供基于HTTP协议的api接口供其他语言或系统调用\n\n### 郑重声明\n\n本项目完全遵循微信官方提供的原始功能，不包含任何破坏、盗号等行为，本项目完全开源，目的是为了促进技术交流学习，禁止任何对国家、企业、个人等构成危害的非法用途，否则后果自负\n\n### 特色功能\n\n* 支持 发送\u002F接收文字、图片、视频、语音、表情、文件等多种媒体消息（网页版自身功能范围）\n* 支持 新增\u002F失去好友、新增\u002F退出群组、新增\u002F失去群成员 等事件提醒\n* 支持 创建群组、群组加人\u002F踢人、发送\u002F接受好友验证申请、设置群组名称、设置好友备注\n* 支持 Windows\u002FLinux\u002FMac 多平台，支持docker镜像，易安装部署，不懂Perl也能用\n* 提供 基于HTTP协议的API接口 ，简洁丰富，方便和其他编程语言集成\n* 一个产品经理的倾情之作，代码由内而外都更加注重“用户体验”，外加主人人品极好，你会懂的\n\n### 插件列表\n\n|名称                | 优先级  |当前状态    |github作者   | 功能说明                 \n|:-------------------|:--------|:-----------|:------------|:----------------------------\n|[ShowMsg](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::ShowMsg)             |100      |已发布      |sjdy521      |打印客户端接收和发送的消息\n|[IRCShell](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::IRCShell)            |99       |已发布      |sjdy521      |Linux环境下通过irc客户端使用微信\n|[Openwx](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Openwx)              |98       |已发布      |sjdy521      |提供微信发送消息api接口\n|[Beauty](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Beauty)              |95       |已发布      |sjdy521      |识别指定关键字发送美女图片\n|[Translation](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Translation)         |93       |已发布      |sjdy521      |多国语言翻译功能\n|[KnowledgeBase](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::KnowledgeBase)       |2        |已发布      |sjdy521      | 通过微信消息自定义问答知识库\n|[AutoVerify](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::AutoVerify)          |1        |已发布      |sjdy521      |收到好友验证请求时自动批准同意\n|[PostQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::PostQRcode)          |0        |已发布      |sjdy521      |登录二维码发送到邮箱实现远程扫码\n|[UploadQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::UploadQRcode)          |0        |已发布      |sjdy521      |二维码上传图床获得公网访问url\n|[XiaoiceReply](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::XiaoiceReply)        |1        |已发布      |sjdy521      |利用微软小冰实现智能聊天回复\n|[ShowQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod#Mojo::Weixin::Plugin::ShowQRcode)          |0        |已发布      |sjdy521  |调用系统图片查看程序来示二维码（目前仅支持win）\n|[SmartReply](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::SmartReply)          |0        |已发布      |sjdy521      |智能聊天回复\n\n更多插件参考[完整插件列表](Plugin.md)\n\n### 效果展示\n\n敲一行命令就能启动一个智能聊天机器人，Perl 和你都如此优雅. Enjoy!\n\n    cpanm Mojo::Weixin && perl -MMojo::Weixin -e \"Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()\"\n    \n```\n[16\u002F01\u002F19 23:10:49] [info] 客户端准备登录...\n[16\u002F01\u002F19 23:10:50] [info] 清除残留的历史二维码图片\n[16\u002F01\u002F19 23:10:30] [info] 二维码已下载到本地[ \u002Ftmp\u002Fmojo_weixin_qrcode.jpg ]\n[16\u002F01\u002F19 23:11:20] [info] 等待手机微信扫描二维码...\n[16\u002F01\u002F19 23:12:09] [info] 手机微信扫码成功，请在手机微信上点击 [登录] 按钮...\n[16\u002F01\u002F19 23:12:10] [info] 正在进行登录...\n[16\u002F01\u002F19 23:12:10] [info] 微信登录成功\n[16\u002F01\u002F19 23:13:40] [info] 获取联系人信息...\n[16\u002F01\u002F19 23:13:40] [info] 更新个人信息成功\n[16\u002F01\u002F19 23:14:41] [info] 更新好友信息成功\n[16\u002F01\u002F19 23:15:42] [info] 更新群组[ 红包群 ]信息成功\n[16\u002F01\u002F19 23:15:42] [info] 更新群组[ Perl语言交流 ]信息成功\n[16\u002F01\u002F19 23:15:42] [info] 开始接收消息...\n[16\u002F01\u002F19 23:15:00] [群消息] 小灰|Perl语言交流 : Mojo::Weixin不错哦\n[16\u002F01\u002F19 23:15:58] [群消息] 我->Perl语言交流 : 多谢多谢\n```\n#### 通过irc客户端在linux终端上使用微信\n\n```\n    +-------------------+                      +----------------+  \n    |  Tencent          |                      | Any IRC Client |\n    |  Weixin Server    |                      | wechat、irssi  |\n    +---v-------------^-+                      +-v------------^-+     \n        |             |                          |            |\n        | 微信协议交互|                          |IRC协议交互 |\n+-- --- |--  - -  --  | - - -   --   -  -   ---  | ---  ----- | --+\n|   +---v-------------^--+                  +----v------------^-+ |   \n|   |                    \u003C——————————————————\u003C                   | |\n|   |   Weixin  Client   |  Weixin - IRC    |  IRC Server       | |\n|   |                    |     协议转换     |  监听本机6667端口 | |\n|   |                    >——————————————————>                   | | \n|   +--------------------+                  +-------------------+ |\n|                                                                 |\n|                                       我们程序实现的部分        | \n+---  - - - -  -- - --  ----  ------  -------  ------  ---    ----+\n\n```\n\n![IRCShell](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhexsum_Mojo-Weixin_readme_65b92a7e83b4.jpg)\n\n#### 更多应用效果 请参见[Mojo-Weixin作品展](Collection.md)\n\n### 安装方法\n\n推荐使用[cpanm](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FApp-cpanminus\u002Fbin\u002Fcpanm)在线安装[Mojo::Weixin](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod)模块, 如果使用docker方式请参见[Docker镜像安装及使用方法](Docker.md)\n\n1. *安装perl*\n  \n    安装之前请先确认下你的系统是否已经安装了Perl，因为除了windows，其他大部分的平台默认都可能已经预装过\n\n    并且你的Perl版本至少5.10.1+，推荐5.14+\n\n    [Perl官网下载页面](https:\u002F\u002Fwww.perl.org\u002Fget.html) 有包含Unix\u002FLinux、Mac OS X、Windows多平台比较全面详细的安装说明\n\n    建议大家尽量选择**Binaries**（二进制预编译）的版本，安装即可使用，比较方便\n\n    Linux上如果你的perl版本较低，想要升级perl，可以考虑使用工具[perlbrew](https:\u002F\u002Fperlbrew.pl\u002F)\n\n    |平台    |推荐选择  |下载地址         |\n    |:-------|:--------|:---------------|\n    |Windows |1. **StrawberryPerl**\u003Cbr>2. ActivePerl\u003Cbr>3. **Mojo-StrawberryPerl**|[StrawberryPerl下载地址](http:\u002F\u002Fstrawberryperl.com\u002F)\u003Cbr>[Mojo-StrawberryPerl下载地址](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-StrawberryPerl)\u003Cbr>[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)\u003Cbr>|\n    |Linux   |1. **系统自带**\u003Cbr>2. **yum\u002Fapt等包管理器**\u003Cbr>3. 官方源码编译\u003Cbr>4. ActivePerl\u003Cbr>5. DWIM-Perl|[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)\u003Cbr>[DWIM-Perl下载地址](http:\u002F\u002Fdwimperl.com\u002Flinux.html)|\n    |Mac     |1. **系统自带**\u003Cbr>2. ActivePerl|[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)|\n  \n    注意：\n    \n    [Mojo-StrawberryPerl](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-StrawberryPerl)是基于StrawberryPerl精简打包而成，适用于windows 32位\u002F64位系统\n\n2. *安装cpanm工具*（如果系统已经安装了cpanm可以忽略此步骤）\n\n    方法a： 通过cpan安装cpanm（只适用于root用户）\n\n        $ cpan -i App::cpanminus\n    \n    方法b： 直接在线安装cpanm\n\n        $ curl -kL http:\u002F\u002Fcpanmin.us | perl - App::cpanminus\n\n        官方服务器在国外，如果无法访问，可以选择下面的命令：\n        \n        $ curl http:\u002F\u002Fshare-10066126.cos.myqcloud.com\u002Fcpanm.pl|perl - App::cpanminus\n\n2. *使用cpanm在线安装 Mojo::Weixin 模块*（如果系统已经安装了该模块，执行此步骤会对模块进行升级）\n\n        $ cpanm Mojo::Weixin\n    \n    如果安装过程中一直提示下载失败，很可能是因为访问到国外服务器网络比较差\n    \n    这种情况下可以尝试按如下方式手动指定国内的镜像站点\n    \n        $ cpanm --mirror http:\u002F\u002Fmirrors.163.com\u002Fcpan\u002F Mojo::Weixin\n\n3. *安装失败可能有帮助的解决方法*\n        \n    如果你运气不佳，通过cpanm没有一次性安装成功，这里提供了一些可能有用的信息\n\n    在安装 Mojo::Weixin 的过程中，cpan或者cpanm会帮助我们自动安装很多其他的依赖模块\n    \n    在众多的依赖模块中，安装经常容易出现问题的主要是 IO::Socket::SSL\n    \n    IO::Socket::SSL 主要提供了 https 支持，在安装过程中可能会涉及到SSL相关库的编译\n\n    对于 Linux 用户，通常采用的是编译安装的方式，系统缺少编译安装必要的环境，则会导致编译失败\n    \n    对于 Windows 用户，由于不具备良好的编译安装环境，推荐采用一些已经打包比较全面的Perl运行环境\n    \n    例如比较流行的 strawberryperl 或者 activeperl 的最新版本都默认包含 Mojo::Weixin 的核心依赖模块\n\n    RedHat\u002FCentos:\n\n        $ yum install -y openssl-devel\n        \n    Ubuntu:\n\n        $ sudo apt-get install libssl-dev\n    \n    搞定了编译和运行环境之后，再重新回到 步骤2 安装Mojo::Weixin即可\n    \n    请尽量在root下安装使用，非root下安装使用参考[FAQ](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Weixin\u002Fblob\u002Fmaster\u002FFAQ.md#5-%E9%9D%9Eroot%E8%B4%A6%E5%8F%B7%E5%AE%89%E8%A3%85%E5%90%8E%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98)\n    \n    如果仍然有问题，Linux上可以尝试执行如下脚本进行依赖模块检查\n    \n        $ curl -ks \"https:\u002F\u002Fraw.githubusercontent.com\u002Fsjdy521\u002FMojo-Weixin\u002Fmaster\u002Fscript\u002Fcheck_dependencies.pl\"|perl -\n        \n\n### 如何使用\n\n1. *我对Perl很熟悉，是一个专业的Perler*\n\n    该项目是一个纯粹的Perl模块，已经发布到了cpan上，请仔细阅读 `Mojo::Weixin` 模块的[使用文档](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod)\n\n    除此之外，你可以看下 [demo](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Weixin\u002Ftree\u002Fmaster\u002Fdemo) 目录下的更多代码示例\n\n2. *我是对Perl不熟悉，是一个其他语言的开发者，只对提供的消息发送\u002F接收接口感兴趣*\n\n    可以直接把如下代码保存成一个源码文件(必须使用UTF8编码)，使用 perl 解释器来运行\n    \n        #!\u002Fusr\u002Fbin\u002Fenv perl\n        use Mojo::Weixin;\n        my ($host,$port,$post_api);\n        \n        $host = \"0.0.0.0\"; #发送消息接口监听地址，没有特殊需要请不要修改\n        $port = 3000;      #发送消息接口监听端口，修改为自己希望监听的端口\n        #$post_api = 'http:\u002F\u002Fxxxx';  #接收到的消息上报接口，如果不需要接收消息上报，可以删除或注释此行\n        \n        my $client = Mojo::Weixin->new(log_level=>\"info\",http_debug=>0);\n        $client->load(\"ShowMsg\");\n        $client->load(\"Openwx\",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});\n        $client->run();\n    \n    上述代码保存成 xxxx.pl 文件，然后使用 perl 来运行，就会完成 微信 登录并在本机产生一个监听指定地址端口的 http server\n    \n        $ perl xxxx.pl\n    \n    发送好友消息的接口调用示例\n    \n        http:\u002F\u002F127.0.0.1:3000\u002Fopenwx\u002Fsend_friend_message?id=xxxx&content=hello\n        \n        * About to connect() to 127.0.0.1 port 3000 (#0)\n        *   Trying 127.0.0.1...\n        * Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)\n        > GET \u002Fopenwx\u002Fsend_friend_message?id=xxxxx&content=hello HTTP\u002F1.1\n        > User-Agent: curl\u002F7.29.0\n        > Host: 127.0.0.1:3000\n        > Accept: *\u002F*\n        > \n        \u003C HTTP\u002F1.1 200 OK\n        \u003C Content-Type: application\u002Fjson;charset=UTF-8\n        \u003C Date: Sun, 13 Dec 2015 04:54:38 GMT\n        \u003C Content-Length: 52\n        \u003C Server: Mojolicious (Perl)\n        \u003C\n        * Connection #0 to host 127.0.0.1 left intact\n        \n        {\"status\":\"发送成功\",\"id\":23910327,\"code\":0}\n    \n    更多接口参数说明参考[Openwx插件API文档](API.md)\n    \n3.  *我是一个极客，我只想能够在命令行上通过  IRC 的方式来玩转微信聊天*\n\n    请阅读[IRCShell插件使用步骤](IRC.md)\n    \n### 核心依赖模块\n\n* [Mojolicious](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FMojolicious)\n* [Encode::Locale](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FEncode::Locale)\n\n### 相关文档\n\n* [更新日志](Changes)\n* [开发&配置文档](doc\u002FWeixin.pod)\n* [基于HTTP的API文档](API.md)\n* [FAQ](FAQ.md)\n\n### 官方交流\n\n* [QQ群](http:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=kjVJzo)\n* [IRC](http:\u002F\u002Firc.perfi.wang\u002F?channel=#Mojo-Webqq)\n\n### 友情链接\n\n*JavaScript*\n\n* [wechaty](https:\u002F\u002Fgithub.com\u002Fzixia\u002Fwechaty) Wechaty is wechat for bot in Javascript(ES6). It's a Personal Account Robot Framework\u002FLibrary.\n* [wechatircd](https:\u002F\u002Fgithub.com\u002FMaskRay\u002Fwechatircd) 用IRC客户端控制微信网页版\n* [Weixinbot](https:\u002F\u002Fgithub.com\u002Ffeit\u002FWeixinbot) Nodejs 封装网页版微信的接口，可编程控制微信消息\n\n*Python*\n* [WeixinBot](https:\u002F\u002Fgithub.com\u002FUrinx\u002FWeixinBot) 网页版微信API，包含终端版微信及微信机器人\n* [ItChat](https:\u002F\u002Fgithub.com\u002Flittlecodersh\u002FItChat) 微信个人号接口、微信机器人及命令行微信。三十行即可自定义个人号机器人\n\n*Java*\n* [wechat-client](https:\u002F\u002Fgithub.com\u002Fdadiyang\u002Fwechat-client) Mojo-Weixin HTTP 接口 的 Java 客户端，非常感谢 @dadiyang 贡献\n\n### 赞助奖励\n\n可以通过扫描支付宝付款二维码进行赞助，感谢您的支持和鼓励\n\n![donate](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhexsum_Mojo-Weixin_readme_454b77e64359.jpg)\n\n特别致谢 [那些曾经赞助的小伙伴们](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Thanks)\n\n### COPYRIGHT 和 LICENCE\n\nCopyright (C) 2014 by sjdy521\n\nThis library is free software; you can redistribute it and\u002For modify it under [MIT License](LICENSE) and [Anti 996 License](LICENSE.996ICU)\n","Mojo-Weixin v1.4.6 [![Build Status](https:\u002F\u002Ftravis-ci.org\u002Fsjdy521\u002FMojo-Weixin.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Fsjdy521\u002FMojo-Weixin) [![API列表](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdoc-API%E5%88%97%E8%A1%A8-brightgreen.svg)](API.md) [![QQ群-498880156](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FQQ%E7%BE%A4-498880156-blue.svg)](http:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=kjVJzo) [![IRC](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FIRC-%E5%AE%98%E6%96%B9%E9%A2%91%E9%81%93-yellow.svg)](http:\u002F\u002Firc.perfi.wang\u002F?channel=#Mojo-Webqq)\n[![LICENSE](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Anti%20996-blue.svg)](https:\u002F\u002Fgithub.com\u002F996icu\u002F996.ICU\u002Fblob\u002Fmaster\u002FLICENSE)\n========================\n\n使用Perl语言编写的微信客户端框架，基于Mojolicious，要求Perl版本5.10+，可通过插件提供基于HTTP协议的api接口供其他语言或系统调用\n\n### 郑重声明\n\n本项目完全遵循微信官方提供的原始功能，不包含任何破坏、盗号等行为，本项目完全开源，目的是为了促进技术交流学习，禁止任何对国家、企业、个人等构成危害的非法用途，否则后果自负\n\n### 特色功能\n\n* 支持 发送\u002F接收文字、图片、视频、语音、表情、文件等多种媒体消息（网页版自身功能范围）\n* 支持 新增\u002F失去好友、新增\u002F退出群组、新增\u002F失去群成员 等事件提醒\n* 支持 创建群组、群组加人\u002F踢人、发送\u002F接受好友验证申请、设置群组名称、设置好友备注\n* 支持 Windows\u002FLinux\u002FMac 多平台，支持docker镜像，易安装部署，不懂Perl也能用\n* 提供 基于HTTP协议的API接口 ，简洁丰富，方便和其他编程语言集成\n* 一个产品经理的倾情之作，代码由内而外都更加注重“用户体验”，外加主人人品极好，你会懂的\n\n### 插件列表\n\n|名称                | 优先级  |当前状态    |github作者   | 功能说明                 \n|:-------------------|:--------|:-----------|:------------|:----------------------------\n|[ShowMsg](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::ShowMsg)             |100      |已发布      |sjdy521      |打印客户端接收和发送的消息\n|[IRCShell](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::IRCShell)            |99       |已发布      |sjdy521      |Linux环境下通过irc客户端使用微信\n|[Openwx](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Openwx)              |98       |已发布      |sjdy521      |提供微信发送消息api接口\n|[Beauty](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Beauty)              |95       |已发布      |sjdy521      |识别指定关键字发送美女图片\n|[Translation](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::Translation)         |93       |已发布      |sjdy521      |多国语言翻译功能\n|[KnowledgeBase](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::KnowledgeBase)       |2        |已发布      |sjdy521      | 通过微信消息自定义问答知识库\n|[AutoVerify](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::AutoVerify)          |1        |已发布      |sjdy521      |收到好友验证请求时自动批准同意\n|[PostQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::PostQRcode)          |0        |已发布      |sjdy521      |登录二维码发送到邮箱实现远程扫码\n|[UploadQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::UploadQRcode)          |0        |已发布      |sjdy521      |二维码上传图床获得公网访问url\n|[XiaoiceReply](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::XiaoiceReply)        |1        |已发布      |sjdy521      |利用微软小冰实现智能聊天回复\n|[ShowQRcode](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod#Mojo::Weixin::Plugin::ShowQRcode)          |0        |已发布      |sjdy521  |调用系统图片查看程序来示二维码（目前仅支持win）\n|[SmartReply](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Flib\u002FMojo\u002FWeixin.pod#Mojo::Weixin::Plugin::SmartReply)          |0        |已发布      |sjdy521      |智能聊天回复\n\n更多插件参考[完整插件列表](Plugin.md)\n\n### 效果展示\n\n敲一行命令就能启动一个智能聊天机器人，Perl 和你都如此优雅. Enjoy!\n\n    cpanm Mojo::Weixin && perl -MMojo::Weixin -e \"Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()\"\n    \n```\n[16\u002F01\u002F19 23:10:49] [info] 客户端准备登录...\n[16\u002F01\u002F19 23:10:50] [info] 清除残留的历史二维码图片\n[16\u002F01\u002F19 23:10:30] [info] 二维码已下载到本地[ \u002Ftmp\u002Fmojo_weixin_qrcode.jpg ]\n[16\u002F01\u002F19 23:11:20] [info] 等待手机微信扫描二维码...\n[16\u002F01\u002F19 23:12:09] [info] 手机微信扫码成功，请在手机微信上点击 [登录] 按钮...\n[16\u002F01\u002F19 23:12:10] [info] 正在进行登录...\n[16\u002F01\u002F19 23:12:10] [info] 微信登录成功\n[16\u002F01\u002F19 23:13:40] [info] 获取联系人信息...\n[16\u002F01\u002F19 23:13:40] [info] 更新个人信息成功\n[16\u002F01\u002F19 23:14:41] [info] 更新好友信息成功\n[16\u002F01\u002F19 23:15:42] [info] 更新群组[ 红包群 ]信息成功\n[16\u002F01\u002F19 23:15:42] [info] 更新群组[ Perl语言交流 ]信息成功\n[16\u002F01\u002F19 23:15:42] [info] 开始接收消息...\n[16\u002F01\u002F19 23:15:00] [群消息] 小灰|Perl语言交流 : Mojo::Weixin不错哦\n[16\u002F01\u002F19 23:15:58] [群消息] 我->Perl语言交流 : 多谢多谢\n```\n#### 通过irc客户端在linux终端上使用微信\n\n```\n    +-------------------+                      +----------------+  \n    |  Tencent          |                      | Any IRC Client |\n    |  Weixin Server    |                      | wechat、irssi  |\n    +---v-------------^-+                      +-v------------^-+     \n        |             |                          |            |\n        | 微信协议交互|                          |IRC协议交互 |\n+-- --- |--  - -  --  | - - -   --   -  -   ---  | ---  ----- | --+\n|   +---v-------------^--+                  +----v------------^-+ |   \n|   |                    \u003C——————————————————\u003C                   | |\n|   |   Weixin  Client   |  Weixin - IRC    |  IRC Server       | |\n|   |                    |     协议转换     |  监听本机6667端口 | |\n|   |                    >——————————————————>                   | | \n|   +--------------------+                  +-------------------+ |\n|                                                                 |\n|                                       我们程序实现的部分        | \n+---  - - - -  -- - --  ----  ------  -------  ------  ---    ----+\n\n```\n\n![IRCShell](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhexsum_Mojo-Weixin_readme_65b92a7e83b4.jpg)\n\n#### 更多应用效果 请参见[Mojo-Weixin作品展](Collection.md)\n\n### 安装方法\n\n推荐使用[cpanm](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FApp-cpanminus\u002Fbin\u002Fcpanm)在线安装[Mojo::Weixin](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod)模块, 如果使用docker方式请参见[Docker镜像安装及使用方法](Docker.md)\n\n1. *安装perl*\n  \n    安装之前请先确认下你的系统是否已经安装了Perl，因为除了windows，其他大部分的平台默认都可能已经预装过\n\n    并且你的Perl版本至少5.10.1+，推荐5.14+\n\n    [Perl官网下载页面](https:\u002F\u002Fwww.perl.org\u002Fget.html) 有包含Unix\u002FLinux、Mac OS X、Windows多平台比较全面详细的安装说明\n\n    建议大家尽量选择**Binaries**（二进制预编译）的版本，安装即可使用，比较方便\n\n    Linux上如果你的perl版本较低，想要升级perl，可以考虑使用工具[perlbrew](https:\u002F\u002Fperlbrew.pl\u002F)\n\n    |平台    |推荐选择  |下载地址         |\n    |:-------|:--------|:---------------|\n    |Windows |1. **StrawberryPerl**\u003Cbr>2. ActivePerl\u003Cbr>3. **Mojo-StrawberryPerl**|[StrawberryPerl下载地址](http:\u002F\u002Fstrawberryperl.com\u002F)\u003Cbr>[Mojo-StrawberryPerl下载地址](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-StrawberryPerl)\u003Cbr>[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)\u003Cbr>|\n    |Linux   |1. **系统自带**\u003Cbr>2. **yum\u002Fapt等包管理器**\u003Cbr>3. 官方源码编译\u003Cbr>4. ActivePerl\u003Cbr>5. DWIM-Perl|[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)\u003Cbr>[DWIM-Perl下载地址](http:\u002F\u002Fdwimperl.com\u002Flinux.html)|\n    |Mac     |1. **系统自带**\u003Cbr>2. ActivePerl|[ActivePerl下载地址](http:\u002F\u002Fwww.activestate.com\u002Factiveperl\u002Fdownloads)|\n\n    注意：\n    \n    [Mojo-StrawberryPerl](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-StrawberryPerl)是基于StrawberryPerl精简打包而成，适用于windows 32位\u002F64位系统\n\n2. *安装cpanm工具*（如果系统已经安装了cpanm可以忽略此步骤）\n\n    方法a： 通过cpan安装cpanm（只适用于root用户）\n\n        $ cpan -i App::cpanminus\n    \n    方法b： 直接在线安装cpanm\n\n        $ curl -kL http:\u002F\u002Fcpanmin.us | perl - App::cpanminus\n\n        官方服务器在国外，如果无法访问，可以选择下面的命令：\n        \n        $ curl http:\u002F\u002Fshare-10066126.cos.myqcloud.com\u002Fcpanm.pl|perl - App::cpanminus\n\n2. *使用cpanm在线安装 Mojo::Weixin 模块*（如果系统已经安装了该模块，执行此步骤会对模块进行升级）\n\n        $ cpanm Mojo::Weixin\n    \n    如果安装过程中一直提示下载失败，很可能是因为访问到国外服务器网络比较差\n    \n    这种情况下可以尝试按如下方式手动指定国内的镜像站点\n    \n        $ cpanm --mirror http:\u002F\u002Fmirrors.163.com\u002Fcpan\u002F Mojo::Weixin\n\n3. *安装失败可能有帮助的解决方法*\n        \n    如果你运气不佳，通过cpanm没有一次性安装成功，这里提供了一些可能有用的信息\n\n    在安装 Mojo::Weixin 的过程中，cpan或者cpanm会帮助我们自动安装很多其他的依赖模块\n    \n    在众多的依赖模块中，安装经常容易出现问题的主要是 IO::Socket::SSL\n    \n    IO::Socket::SSL 主要提供了 https 支持，在安装过程中可能会涉及到SSL相关库的编译\n\n    对于 Linux 用户，通常采用的是编译安装的方式，系统缺少编译安装必要的环境，则会导致编译失败\n    \n    对于 Windows 用户，由于不具备良好的编译安装环境，推荐采用一些已经打包比较全面的Perl运行环境\n    \n    例如比较流行的 strawberryperl 或者 activeperl 的最新版本都默认包含 Mojo::Weixin 的核心依赖模块\n\n    RedHat\u002FCentos:\n\n        $ yum install -y openssl-devel\n        \n    Ubuntu:\n\n        $ sudo apt-get install libssl-dev\n    \n    搞定了编译和运行环境之后，再重新回到 步骤2 安装Mojo::Weixin即可\n    \n    请尽量在root下安装使用，非root下安装使用参考[FAQ](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Weixin\u002Fblob\u002Fmaster\u002FFAQ.md#5-%E9%9D%9Eroot%E8%B4%A6%E5%8F%B7%E5%AE%89%E8%A3%85%E5%90%8C%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98)\n    \n    如果仍然有问题，Linux上可以尝试执行如下脚本进行依赖模块检查\n    \n        $ curl -ks \"https:\u002F\u002Fraw.githubusercontent.com\u002Fsjdy521\u002FMojo-Weixin\u002Fmaster\u002Fscript\u002Fcheck_dependencies.pl\"|perl -\n        \n\n### 如何使用\n\n1. *我对Perl很熟悉，是一个专业的Perler*\n\n    该项目是一个纯粹的Perl模块，已经发布到了cpan上，请仔细阅读 `Mojo::Weixin` 模块的[使用文档](https:\u002F\u002Fmetacpan.org\u002Fpod\u002Fdistribution\u002FMojo-Weixin\u002Fdoc\u002FWeixin.pod)\n\n    除此之外，你可以看下 [demo](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Weixin\u002Ftree\u002Fmaster\u002Fdemo) 目录下的更多代码示例\n\n2. *我是对Perl不熟悉，是一个其他语言的开发者，只对提供的消息发送\u002F接收接口感兴趣*\n\n    可以直接把如下代码保存成一个源码文件(必须使用UTF8编码)，使用 perl 解释器来运行\n    \n        #!\u002Fusr\u002Fbin\u002Fenv perl\n        use Mojo::Weixin;\n        my ($host,$port,$post_api);\n        \n        $host = \"0.0.0.0\"; #发送消息接口监听地址，没有特殊需要请不要修改\n        $port = 3000;      #发送消息接口监听端口，修改为自己希望监听的端口\n        #$post_api = 'http:\u002F\u002Fxxxx';  #接收到的消息上报接口，如果不需要接收消息上报，可以删除或注释此行\n        \n        my $client = Mojo::Weixin->new(log_level=>\"info\",http_debug=>0);\n        $client->load(\"ShowMsg\");\n        $client->load(\"Openwx\",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});\n        $client->run();\n    \n    上述代码保存成 xxxx.pl 文件，然后使用 perl 来运行，就会完成 微信 登录并在本机产生一个监听指定地址端口的 http server\n    \n        $ perl xxxx.pl\n    \n    发送好友消息的接口调用示例\n    \n        http:\u002F\u002F127.0.0.1:3000\u002Fopenwx\u002Fsend_friend_message?id=xxxx&content=hello\n        \n        * About to connect() to 127.0.0.1 port 3000 (#0)\n        *   Trying 127.0.0.1...\n        * Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)\n        > GET \u002Fopenwx\u002Fsend_friend_message?id=xxxxx&content=hello HTTP\u002F1.1\n        > User-Agent: curl\u002F7.29.0\n        > Host: 127.0.0.1:3000\n        > Accept: *\u002F*\n        > \n        \u003C HTTP\u002F1.1 200 OK\n        \u003C Content-Type: application\u002Fjson;charset=UTF-8\n        \u003C Date: Sun, 13 Dec 2015 04:54:38 GMT\n        \u003C Content-Length: 52\n        \u003C Server: Mojolicious (Perl)\n        \u003C\n        * Connection #0 to host 127.0.0.1 left intact\n        \n        {\"status\":\"发送成功\",\"id\":23910327,\"code\":0}\n    \n    更多接口参数说明参考[Openwx插件API文档](API.md)\n    \n3.  *我是一个极客，我只想能够在命令行上通过  IRC 的方式来玩转微信聊天*\n\n    请阅读[IRCShell插件使用步骤](IRC.md)\n    \n### 核心依赖模块\n\n* [Mojolicious](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FMojolicious)\n* [Encode::Locale](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FEncode::Locale)\n\n### 相关文档\n\n* [更新日志](Changes)\n* [开发&配置文档](doc\u002FWeixin.pod)\n* [基于HTTP的API文档](API.md)\n* [FAQ](FAQ.md)\n\n### 官方交流\n\n* [QQ群](http:\u002F\u002Fjq.qq.com\u002F?_wv=1027&k=kjVJzo)\n* [IRC](http:\u002F\u002Firc.perfi.wang\u002F?channel=#Mojo-Webqq)\n\n### 赞助奖励\n\n可以通过扫描支付宝付款二维码进行赞助，感谢您的支持和鼓励\n\n![donate](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhexsum_Mojo-Weixin_readme_454b77e64359.jpg)\n\n特别致谢 [那些曾经赞助的小伙伴们](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-Thanks)\n\n### COPYRIGHT 和 LICENCE\n\nCopyright (C) 2014 by sjdy521\n\nThis library is free software; you can redistribute it and\u002For modify it under [MIT License](LICENSE) and [Anti 996 License](LICENSE.996ICU)","# Mojo-Weixin 快速上手指南\n\nMojo-Weixin 是一个基于 Perl 语言和 Mojolicious 框架开发的微信客户端框架。它支持多平台运行，并提供基于 HTTP 协议的 API 接口，方便与其他编程语言集成或构建聊天机器人。\n\n## 1. 环境准备\n\n### 系统要求\n*   **操作系统**：Windows \u002F Linux \u002F Mac OS X\n*   **Perl 版本**：最低 5.10.1，推荐 5.14+\n*   **网络环境**：需能访问微信网页版接口\n\n### 前置依赖安装\n大多数 Linux 和 Mac 系统预装了 Perl，但版本可能较低。Windows 用户建议直接安装集成环境。\n\n*   **Windows 用户**：\n    推荐下载并安装 **Strawberry Perl** 或 **Mojo-StrawberryPerl**（已预装核心依赖）：\n    *   [Strawberry Perl 下载地址](http:\u002F\u002Fstrawberryperl.com\u002F)\n    *   [Mojo-StrawberryPerl 下载地址](https:\u002F\u002Fgithub.com\u002Fsjdy521\u002FMojo-StrawberryPerl)\n\n*   **Linux 用户 (编译环境)**：\n    若通过源码编译安装依赖，需先安装 SSL 开发库：\n    *   **CentOS\u002FRedHat**: `yum install -y openssl-devel`\n    *   **Ubuntu\u002FDebian**: `sudo apt-get install libssl-dev`\n\n*   **工具准备**：\n    确保已安装 `cpanm` (CPAN Minus) 模块管理工具。若未安装，可使用以下命令（优先使用国内镜像加速）：\n    ```bash\n    curl http:\u002F\u002Fshare-10066126.cos.myqcloud.com\u002Fcpanm.pl | perl - App::cpanminus\n    ```\n\n## 2. 安装步骤\n\n推荐使用 `cpanm` 在线安装 `Mojo::Weixin` 模块。为避免网络超时，强烈建议指定国内镜像源（如网易镜像）。\n\n执行以下命令进行安装：\n\n```bash\ncpanm --mirror http:\u002F\u002Fmirrors.163.com\u002Fcpan\u002F Mojo::Weixin\n```\n\n> **注意**：如果在非 root 用户下安装遇到权限问题，请在命令前加上 `sudo`，或参考 perlbrew 方案管理本地 Perl 环境。\n\n## 3. 基本使用\n\n### 方式一：一键启动智能机器人（最简单）\n只需一行命令即可启动一个具备消息打印和智能回复功能的微信机器人。运行后终端会显示登录二维码，请使用手机微信扫码登录。\n\n```bash\ncpanm Mojo::Weixin && perl -MMojo::Weixin -e \"Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()\"\n```\n\n### 方式二：作为 HTTP API 服务运行\n如果你不熟悉 Perl，只想通过 HTTP 接口调用微信功能（例如用 Python\u002FJava\u002FGo 调用），可将以下代码保存为 `wechat_server.pl` (注意文件编码为 **UTF-8**)：\n\n```perl\n#!\u002Fusr\u002Fbin\u002Fenv perl\nuse Mojo::Weixin;\nmy ($host,$port,$post_api);\n\n$host = \"0.0.0.0\"; # 监听地址\n$port = 3000;      # 监听端口\n#$post_api = 'http:\u002F\u002Fxxxx';  # 可选：接收消息上报的回调地址\n\nmy $client = Mojo::Weixin->new(log_level=>\"info\",http_debug=>0);\n$client->load(\"ShowMsg\");\n$client->load(\"Openwx\",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});\n$client->run();\n```\n\n**启动服务：**\n```bash\nperl wechat_server.pl\n```\n扫码登录后，服务将在本地 `3000` 端口启动 HTTP 服务器。\n\n**调用示例（发送好友消息）：**\n使用 curl 或其他 HTTP 客户端请求接口：\n```bash\ncurl \"http:\u002F\u002F127.0.0.1:3000\u002Fopenwx\u002Fsend_friend_message?id=目标好友ID&content=hello\"\n```\n\n返回示例：\n```json\n{\"status\":\"发送成功\",\"id\":23910327,\"code\":0}\n```\n\n更多 API 参数详情请查阅项目官方 API 文档。","某初创公司的运维团队需要构建一个 7x24 小时的服务器报警通知系统，并要求值班人员能直接在微信上确认故障或查询状态。\n\n### 没有 Mojo-Weixin 时\n- **开发门槛高且耗时**：团队主要使用 Python 和 Go，若要对接微信协议，需从头研究逆向工程或购买昂贵的企业号服务，无法快速落地。\n- **交互方式僵化**：报警信息只能单向推送到群聊，值班人员无法通过回复特定指令（如“重启服务”）直接触发后台操作，必须登录服务器终端处理。\n- **多语言集成困难**：现有的监控脚本（Shell\u002FPerl）与新的通知模块之间存在语言隔阂，数据传递依赖复杂的中间文件或数据库，增加了系统不稳定性。\n- **部署维护复杂**：缺乏轻量级的客户端框架，需要在服务器上模拟完整的图形界面环境才能运行某些微信协议库，资源占用高且易崩溃。\n\n### 使用 Mojo-Weixin 后\n- **零门槛快速集成**：利用 Mojo-Weixin 提供的标准 HTTP API 接口，运维人员直接用熟悉的 Python 或 Go 编写业务逻辑，几小时内即可完成报警机器人开发。\n- **实现双向智能交互**：通过加载 `SmartReply` 或自定义插件，系统能自动解析值班人员的回复指令，直接调用后端脚本执行重启、扩容等操作，形成闭环。\n- **无缝连接异构系统**：作为基于 HTTP 的中间件，Mojo-Weixin 轻松桥接了老旧的 Perl 监控脚本与现代微服务架构，消息收发稳定且延迟极低。\n- **轻量级跨平台部署**：支持 Docker 镜像一键部署，无需图形界面即可在 Linux 服务器上稳定运行，大幅降低了资源消耗和维护成本。\n\nMojo-Weixin 将复杂的微信协议封装为简单的 HTTP 服务，让非 Perl 开发者也能低成本构建功能强大的微信自动化工作流。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhexsum_Mojo-Weixin_054f57a0.png","hexsum","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhexsum_f30aa106.jpg","I'm a Geek",null,"https:\u002F\u002Fgithub.com\u002Fhexsum",[81,85,88],{"name":82,"color":83,"percentage":84},"Perl","#0298c3",98.6,{"name":86,"color":78,"percentage":87},"Perl 6",1.1,{"name":89,"color":90,"percentage":91},"Dockerfile","#384d54",0.3,1246,255,"2026-03-20T04:56:08","NOASSERTION","Linux, macOS, Windows","未说明",{"notes":99,"python":100,"dependencies":101},"该工具基于 Perl 语言而非 Python。Windows 用户推荐使用 StrawberryPerl 或 ActivePerl；Linux 用户若编译失败需安装 openssl-devel (RedHat\u002FCentos) 或 libssl-dev (Ubuntu)。支持 Docker 部署。","不适用 (基于 Perl)",[102,103,104,105,106],"Perl >= 5.10.1 (推荐 5.14+)","Mojolicious","Encode::Locale","IO::Socket::SSL","cpanm",[54,16,27,53],[109,110,111,112,113,114,115,116,117,118,119,120],"perl","mojo","irc","weixin","wechat","chat","chatbot","api","docker","weixinbot","bot","cli","2026-03-27T02:49:30.150509","2026-04-06T23:56:25.566809",[124,129,134,139,144,149,154],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},20478,"安装 Mojo::Weixin 时遇到 Net::SSLeay 或 IO::Socket::SSL 依赖安装失败怎么办？","这是常见的依赖缺失问题。在 Debian\u002FUbuntu 系统（包括 Raspbian）上，请先通过包管理器安装底层库，然后再使用 cpanm 安装 Perl 模块。执行以下命令：\nsudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl\n安装完这两个系统依赖后，再运行 cpanm Mojo::Weixin 即可成功。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F172",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},20479,"为什么登录时提示“为了你的帐号安全，此微信号已不允许登录网页微信” (错误码 1203)？","这是微信官方对网页版登录的限制策略。新注册的微信号或部分老账号可能被禁止使用网页版微信。目前无法通过代码绕过此限制，建议尽量使用注册年限较长的老号码进行测试，或者改用 Windows\u002FMac 客户端版本的微信。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F182",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},20480,"程序登录后不断重复注销并重新登录（循环登录），如何解决？","这通常是由于微信服务端返回 synccheck 状态码 1100 导致的已知问题。维护者已在 GitHub 最新代码中修复了此 Bug。请拉取最新的 GitHub 代码进行测试，不要仅依赖 CPAN 上的旧版本。正式修复版本将在后续的发布版（如 1.2.1 及更高版本）中包含。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F25",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},20481,"为什么获取到的群组列表不完整，缺少部分群组？","微信网页版需要通过特定接口通知服务端更新群组列表。原因是缺少向服务端发送状态通知的步骤。解决方案是确保代码中调用了 `\u002Fcgi-bin\u002Fmmwebwx-bin\u002Fwebwxstatusnotify` 接口。该接口用于通知手机端正在线，随后服务器会推送完整的群组更新信息。请使用最新的代码库，其中已包含相关修复。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F66",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},20482,"如何在 irssi 或其他非图形界面环境中发送图片文件？","可以通过将图片文件转换为 Base64 编码字符串，然后将其作为文本消息发送。接收方如果是支持 Base64 解码的客户端可以直接显示图片，不支持的客户端也能看到编码后的字符串。这种方法避免了直接传输二进制文件的复杂性，适合在 IRC Shell 等文本环境中使用。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F51",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},20483,"扫码登录后提示“登录结果异常”或直接注销，但手机端显示扫码成功，是什么原因？","这种情况可能与微信客户端版本有关。有用户反馈将手机微信客户端升级到最新版本后，扫码登录的成功率显著提高，不再需要多次尝试。如果遇到问题，请首先尝试更新手机端的微信 App 到最新版。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F125",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},20484,"下载媒体文件（如图片）时路径变为 'non-exist-path' 且类型为 text\u002Fhtml 是怎么回事？","这是因为微信服务端在某些情况下返回了 HTML 类型的响应（通常是错误页面）而不是真实的媒体文件，导致解析失败。这可能是间歇性的服务端问题或网络波动。如果遇到此问题，建议检查日志中的 media_mime 字段，若为 text\u002Fhtml 则说明下载失败，需稍后重试或检查网络连接。","https:\u002F\u002Fgithub.com\u002Fhexsum\u002FMojo-Weixin\u002Fissues\u002F28",[]]