关于用java做微信机器人的艰辛过程
<svg xmlns="http://www.w3.org/2000/svg" style="display: none"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path>
</svg>
<p><strong><mark>一定要看到最后,否则后果很严重哦~</mark></strong></p>
<h2><strong>1、技术栈</strong></h2>
<blockquote>
<p>1、可爱猫框架,官网可爱猫论坛<br> 2、Simpler-robot框架,官网微信 - 可爱猫-httpapi<br> 3、springboot</p>
</blockquote>
<h2><strong>2、可爱猫环境搭建</strong></h2>
<h3>2.1 目前微信机器人实现方式:</h3>
<blockquote>
<ol><li>程序注入</li><li>破解微信协议</li></ol>
</blockquote>
<p>可爱猫就是前者,本地需要安装下载特定版本的微信,因为每个版本的基地址和一些功能的地址不一定相同,内存结构同样可能不同,所以特定版本的可爱猫只针对特定版的微信有效。<br> 可爱猫是由透姐以及其他易语言爱好者共同开发调试出来的微信辅助工具(感谢他们),由于是<mark>易语言</mark>开发,所以大多时候会被报毒(易语言:怪我咯~),相信就添加到信任文件并使用,不相信请使用其他方法搭建微信机器人。</p>
<h3>2.2 安装微信和微信设置(建议)</h3>
<p>如果没安装过直接双击安装,记得选择目录,不然自动放C盘了。如果本地安装过依旧双击安装,然后回提示是否回退到旧版本,点击确定,等待安装完成。</p>
<p>微信设置:取消版本自动更新</p>
<blockquote>
<p>操作步骤:点击设置->通用设置,取消有更新时自动升级微信。</p>
</blockquote>
<p><img src="https://img-blog.csdnimg.cn/e6f48340329f4bbe9d5cacaebb846123.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"></p>
<h3>2.3 安装可爱猫</h3>
<p>下载解压,如果系统提示文件夹包含病毒,已经自动删除,请在win的安全中学把解压可爱毛的目录设置为白名单,上面提及,可爱猫是通过易语言注入来实现机器人的功能,本来程序注入就会被某些软件报毒,何况还是易语言( 气抖冷 )<br> 注意事项:<br> ○ 版本不一致问题:如提示 版本不一致,会打开下载链接,可爱猫官方链接已挂,请使用上面给出的链接下载或者自行寻找资源,微信版本2.6.8.52<br> ○ 系统报毒:请手动恢复可爱猫被删除文件和隔离的文件,并给可爱猫文件夹添加至白名单<br> ○ 内部错误:一般重启或者重新安装能够解决,如果还是不能,请换台电脑试试,某些服务器或者很老的系统需要安装补丁等才可以正常使用。<br> 正确打开后出现如下文件夹,打开可爱猫文件,如果弹出需要上网,点击允许访问<br> <img src="https://img-blog.csdnimg.cn/814e0ea1e48844519f17128b847b26ea.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"></p>
<h3>2.4 基本页面如下</h3>
<p><img src="https://img-blog.csdnimg.cn/853dc357e2a74369a05a8f95514b0c0b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"><br> <img src="https://img-blog.csdnimg.cn/528dd865bfcc4246b63b690639c7b75b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"><br> <img src="https://img-blog.csdnimg.cn/c757719ea2d94a569ce0aeac5d2e8bed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"></p>
<h2><strong>3、配置springboot环境</strong></h2>
<h3>3.1 引入依赖</h3>
<pre><code class="prism language-xml"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>properties</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>java.version</span><span class="token punctuation">></span></span>1.8<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>java.version</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>simbot.version</span><span class="token punctuation">></span></span>2.3.0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>simbot.version</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>properties</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependencyManagement</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependencies</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>love.forte.simple-robot<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>parent<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>version</span><span class="token punctuation">></span></span>${simbot.version}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>version</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>scope</span><span class="token punctuation">></span></span>import<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>scope</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>type</span><span class="token punctuation">></span></span>pom<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>type</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependencies</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependencyManagement</span><span class="token punctuation">></span></span>
</code></pre>
<pre><code class="prism language-xml"> <span class="token comment"><!-- 可爱猫组件依赖。如果使用版本控制,则不需要填写version。 --></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>love.forte.simple-robot<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>component-lovelycat-httpapi<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>love.forte.simple-robot<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>core-spring-boot-starter<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>love.forte.simple-robot<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>api<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span>
</code></pre>
<h3>3.2 编写启动类</h3>
<pre><code class="prism language-java"><span class="token comment">/**
* @author yinfeng
* @description 启动类
* @since 2021/12/22 22:50
*/</span>
<span class="token annotation punctuation">@EnableSimbot</span>
<span class="token annotation punctuation">@EnableScheduling</span>
<span class="token annotation punctuation">@SpringBootApplication</span>
<span class="token annotation punctuation">@Slf4j</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">WxRobotApplication</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span>String<span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token punctuation">{</span>
SpringApplication<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span>WxRobotApplication<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> args<span class="token punctuation">)</span><span class="token punctuation">;</span>
log<span class="token punctuation">.</span><span class="token function">info</span><span class="token punctuation">(</span><span class="token string">"微信机器人启动成功~~~~"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h3>3.3 设置消息监听</h3>
<pre><code class="prism language-java"><span class="token comment">/**
* @author yinfeng
* @description 机器人监听
* @since 2021/11/6 20:51
*/</span>
<span class="token annotation punctuation">@Component</span>
<span class="token annotation punctuation">@Slf4j</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MessageListener</span> <span class="token punctuation">{</span>
<span class="token comment">/**
* 监听私聊消息
*/</span>
<span class="token annotation punctuation">@OnPrivate</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">privateMsg</span><span class="token punctuation">(</span>PrivateMsg privateMsg<span class="token punctuation">,</span> MsgSender sender<span class="token punctuation">)</span> <span class="token punctuation">{</span>
sender<span class="token punctuation">.</span>SENDER<span class="token punctuation">.</span><span class="token function">sendPrivateMsg</span><span class="token punctuation">(</span>privateMsg<span class="token punctuation">,</span><span class="token string">"444"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">/**
* 监听群消息
*/</span>
<span class="token annotation punctuation">@OnGroup</span>
<span class="token keyword">public</span> ReplyAble <span class="token function">groupMsg</span><span class="token punctuation">(</span>GroupMsg groupMsg<span class="token punctuation">,</span> MsgSender sender<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">// 默认关闭群聊模式,需要的话把注释去掉</span>
<span class="token keyword">return</span> null<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2><strong>4、惨痛教训</strong></h2>
<blockquote>
<p>在即将完工的时候微信突然给我<mark>提示</mark></p>
</blockquote>
<p><img src="https://img-blog.csdnimg.cn/74eaa7e291af4a3f97e70e435cc5dd90.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"><br> <img src="https://img-blog.csdnimg.cn/5b68d6b1bbc64734abd5516195d23b95.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_20,color_FFFFFF,t_70,g_se,x_16"></p>
<blockquote>
<p>这。。。我的心中仿佛有一千万头草泥马在<strong>狂奔</strong>!!!<br> <img src="https://img-blog.csdnimg.cn/ebbff369b67b40e99ea80b7c9669eea9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6ZqQIOmjjg==,size_13,color_FFFFFF,t_70,g_se,x_16"></p>
</blockquote>
<blockquote>
<p>这也太难受了吧!!!<br> 我刚注册的号啊!!!<br> 到此微信机器人制作教程宣布失败!!!</p>
</blockquote>
<h2><strong>5、总结</strong></h2>
<blockquote>
<p>由于存在封号风险,就不开源代码了,仅供大家参考一下就好<br> 最后还是建议大家不要考虑微信机器人了,有很大的封号风险,推荐去玩QQ机器人,参考教程用JAVA做个QQ机器人</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/yin-feng/p/15920942.html
頁:
[1]