当前位置: 首页 > 工具软件 > itchat4j > 使用案例 >

java如何自动控制微信_itchat4j--用 Java 扩展个人微信号的能力!

狄望
2023-12-01

之前已经发布过一次,这次重新发布是因为增加了多个接口,项目结构也做了较大调整,

项目地址:itchat4j,该项目长期维护更新,欢迎 star、fork、pull requests、issue。

来源

itchat 是一个非常优秀的开源微信个人号接口,使用 Python 语言开发,提供了简单易用的 API,可以很方便地对个人微信号进行扩展,实现自动回复,微信挂机机器人等,一直在关注这个项目,基于 itchat 开发过一个小项目,用来控制我的树莓派来播放音乐,效果还不错。

一直想实现一个 java 版本的 itchat,由于工作太忙导致一拖再拖,这段时间稍微空闲了一些,仔细阅读了 itchat 的源码,终于完成了一个基础版本,由于主要灵感来源于 itchat 项目,所以这个项目的就暂时定名为itchat4j吧。

项目介绍

itchat 是一个开源的微信个人号接口,使用 Python 调用微信从未如此简单。使用短短的几十行代码,你就可以完成一个能够处理所有信息的微信机器人。当然,itchat 的使用远不止一个机器人,更多的功能等着你来发现,如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。(引自 itchat 项目)

你可以轻松将itchat4j其集成在你个人的 Java 应用中,无论是 SpringMVC、桌面程序还是嵌入式程序,只要使用的 JDK 是 1.6 以上的版本,都可以轻松接入。玩法很多,请打开你的脑洞,比如这些:

Just for fun,把个人微信号扩展为"公众号",在朋友面前装个 X 吧。

集成在你的个人应用( SpringMVC、Serverlet、GUI )中,为应用提供更强的服务能力。

部署在你的服务器上,将监控信息、日志发送到你的微信号。

微信机器人,专业陪聊工具

控制树莓派、智能家居、智能硬件等具有开放接口的设备

Anything you want ...

API 说明

项目在不断更新中,API 会有变动,请以具体代码为准

目前在package cn.zhouyafeng.itchat4j.api包中有两个静态类,即MessageTools和WechatTools,目前对外暴露的方法有:

1.获取好友列表 WechatTools.getContactList()

此方法会返回好友昵称列表,其函数声明为:

public static List getContactList()

2.获取群列表 WechatTools.getGroupIdList()

群列表与好友列表不同,在登陆后群列表其实是空的,只有主动发送消息或者收到一条群消息时,才能获取到这个群的信息,群列表会记录这个群的 id,其格式为@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46。调用此方法会返回已知的群列表。其声明函数为:

public static List getGroupIdList()

3. 根据好友昵称发送文本消息,MessageTools.sendMsgByNickName(String text, String nickName)

此方法根据用户昵称发送文本消息,注意,用户需在你的好友列表里,否则发送失败,如果你的好友列表里有存在昵称一样的多个用户,则只会给第一个匹配的好友发送消息。方法接受两个参数,text为要发送的文本消息,nickName为要发送消息的好友昵称,成功发送时返回 true,失败返回 false。其函数声明为:

public static boolean sendMsgByNickName(String text, String nickName)

4.根据 ID 发送文本消息,MessageTools.sendMsgById(String text, String id)

根据 ID 发送文本消息,发送者 ID 可以从msg里通过msg.getString("FromUserName")获取,格式为@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46(群消息)或@a257b99314d8313862cd44ab02fe0f81(非群消息),调用此方法可向指定 id 发送消息。其函数声明为:

public static void sendMsgById(String text, String id)

5.根据好友昵称发送图片消息,MessageTools.sendPicMsgByNickName(String nickName, String filePath)

此方法根据好友昵称发送图片消息,filePath为图片文件路径,如D:/itchat4j/pic/test.jpg,成功返回 true,失败返回 false。其函数声明为:

public static boolean sendPicMsgByNickName(String nickName, String filePath)

6.根据 ID 发送图片消息,MessageTools.sendPicMsgByUserId(String userId, String filePath)

此方法根据好友 ID 发送图片消息,filePath为图片文件路径,如D:/itchat4j/pic/test.jpg`,成功返回 true,失败返回 false。其函数声明为:

public static boolean sendPicMsgByUserId(String userId, String filePath)

7.根据好友昵称发送文件消息,MessageTools.sendFileMsgByNickName(String nickName, String filePath)

此方法根据好友昵称发送文件消息,文件可以为多种类型,如 txt、PDF、小视频、语音、excel、docx 等,发送时请保证文件后缀名正确。成功返回 true,失败返回 false。其函数声明为:

public static boolean sendPicFileByNickName(String nickName, String filePath)

8.根据 ID 发送文件消息,MessageTools.sendFileMsgByNickName(String nickName, String filePath)

此方法根据好友昵称发送文件消息,成功返回 true,失败返回 false。其函数声明为:

public static boolean sendFileMsgByUserId(String userId, String filePath)

TODO List 即将支持 /正在开发

根据 userId 获取用户的详细信息

获取群成员列表

拉人进群功能

如何使用

项目在不断更新中,导入后的项目结构会有变动

itchat4j 是一个 Maven 项目,下载源码后,可以以 Maven 项目的形式导入,导入后的项目结构如下图:

src/main/java 是 itchat4j 的项目源码,在 src/test/java 目录下有两个小 Demo:一个是基本功能的小示例,当前,itchat4j 可以处理四类基本信息,文本、语音、图片和小视频,该示例在收到文本信息后自动回复,回复内容为收到的文本,当收到图片、语音、小视频时可以保存到指定的目录;一个是微信接入图灵机器人的小例子,如下图。

微信机器人使用截图

问题和建议

本项目长期更新、维护,功能不断扩展与完善中,欢迎 star。

项目使用过程中遇到问题,欢迎随时反馈。

任何问题或者建议都可以在 Issue 中提出来,也可以加入 QQ 群讨论:636365179

 类似资料: