之前已经发布过一次,这次重新发布是因为增加了多个接口,项目结构也做了较大调整,
itchat 是一个非常优秀的开源微信个人号接口,使用 Python 语言开发,提供了简单易用的 API,可以很方便地对个人微信号进行扩展,实现自动回复,微信挂机机器人等,一直在关注这个项目,基于 itchat 开发过一个小项目,用来控制我的树莓派来播放音乐,效果还不错。
一直想实现一个 java 版本的 itchat,由于工作太忙导致一拖再拖,这段时间稍微空闲了一些,仔细阅读了 itchat 的源码,终于完成了一个基础版本,由于主要灵感来源于 itchat 项目,所以这个项目的就暂时定名为itchat4j吧。
itchat 是一个开源的微信个人号接口,使用 Python 调用微信从未如此简单。使用短短的几十行代码,你就可以完成一个能够处理所有信息的微信机器人。当然,itchat 的使用远不止一个机器人,更多的功能等着你来发现,如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。(引自 itchat 项目)
你可以轻松将itchat4j其集成在你个人的 Java 应用中,无论是 SpringMVC、桌面程序还是嵌入式程序,只要使用的 JDK 是 1.6 以上的版本,都可以轻松接入。玩法很多,请打开你的脑洞,比如这些:
项目在不断更新中,API 会有变动,请以具体代码为准
目前在package cn.zhouyafeng.itchat4j.api
包中有两个静态类,即MessageTools
和WechatTools
,目前对外暴露的方法有:
此方法会返回好友昵称列表,其函数声明为:
public static List<String> getContactList()
群列表与好友列表不同,在登陆后群列表其实是空的,只有主动发送消息或者收到一条群消息时,才能获取到这个群的信息,群列表会记录这个群的 id,其格式为@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46
。调用此方法会返回已知的群列表。其声明函数为:
public static List<String> getGroupIdList()
此方法根据用户昵称发送文本消息,注意,用户需在你的好友列表里,否则发送失败,如果你的好友列表里有存在昵称一样的多个用户,则只会给第一个匹配的好友发送消息。方法接受两个参数,text
为要发送的文本消息,nickName
为要发送消息的好友昵称,成功发送时返回 true,失败返回 false。其函数声明为:
public static boolean sendMsgByNickName(String text, String nickName)
根据 ID 发送文本消息,发送者 ID 可以从msg
里通过msg.getString("FromUserName")
获取,格式为@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46
(群消息)或@a257b99314d8313862cd44ab02fe0f81
(非群消息),调用此方法可向指定 id 发送消息。其函数声明为:
public static void sendMsgById(String text, String id)
此方法根据好友昵称发送图片消息,filePath
为图片文件路径,如D:/itchat4j/pic/test.jpg
,成功返回 true,失败返回 false。其函数声明为:
public static boolean sendPicMsgByNickName(String nickName, String filePath)
此方法根据好友 ID 发送图片消息,filePath为图片文件路径,如
D:/itchat4j/pic/test.jpg`,成功返回 true,失败返回 false。其函数声明为:
public static boolean sendPicMsgByUserId(String userId, String filePath)
此方法根据好友昵称发送文件消息,文件可以为多种类型,如 txt、PDF、小视频、语音、excel、docx 等,发送时请保证文件后缀名正确。成功返回 true,失败返回 false。其函数声明为:
public static boolean sendPicFileByNickName(String nickName, String filePath)
此方法根据好友昵称发送文件消息,成功返回 true,失败返回 false。其函数声明为:
public static boolean sendFileMsgByUserId(String userId, String filePath)
项目在不断更新中,导入后的项目结构会有变动
itchat4j 是一个 Maven 项目,下载源码后,可以以 Maven 项目的形式导入,导入后的项目结构如下图:
src/main/java 是 itchat4j 的项目源码,在 src/test/java 目录下有两个小 Demo:一个是基本功能的小示例,当前,itchat4j 可以处理四类基本信息,文本、语音、图片和小视频,该示例在收到文本信息后自动回复,回复内容为收到的文本,当收到图片、语音、小视频时可以保存到指定的目录;一个是微信接入图灵机器人的小例子,如下图。
本项目长期更新、维护,功能不断扩展与完善中,欢迎 star。
项目使用过程中遇到问题,欢迎随时反馈。
任何问题或者建议都可以在 Issue 中提出来,也可以加入 QQ 群讨论:636365179
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.