# itchat4j -- 用Java扩展个人微信号的能力
### 项目地址:[itchat4j](https://github.com/yaphone/itchat4j),该项目长期维护更新,欢迎star、fork、 pull requests、 issue。
## 示例项目程序[点击此处下载](https://github.com/yaphone/itchat4jdemo)。
### 来源
[itchat](https://github.com/littlecodersh/ItChat)是一个非常优秀的开源微信个人号接口,使用Python语言开发,提供了简单易用的API,可以很方便地对个人微信号进行扩展,实现自动回复,微信挂机机器人等,一直在关注这个项目,基于itchat开发过[一个小项目](https://github.com/yaphone/RasWxNeteaseMusic),用来控制我的树莓派来播放音乐,效果还不错。
一直想实现一个java版本的itchat,由于工作太忙导致一拖再拖,这段时间稍微空闲了一些,仔细阅读了itchat的源码,终于完成了一个基础版本,由于主要灵感来源于itchat项目,所以这个项目的就暂时定名为[itchat4j](https://github.com/yaphone/itchat4j)吧。
## 项目介绍
> itchat是一个开源的微信个人号接口,使用Python调用微信从未如此简单。使用短短的几十行代码,你就可以完成一个能够处理所有信息的微信机器人。当然,itchat的使用远不止一个机器人,更多的功能等着你来发现,如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。(引自itchat项目)
你可以轻松将[itchat4j](https://github.com/yaphone/itchat4j)其集成在你个人的Java应用中,无论是SpringMVC、桌面程序还是嵌入式程序,只要使用的JDK是1.7以上的版本,都可以轻松接入。玩法很多,请打开你的脑洞,比如这些:
- Just for fun,把个人微信号扩展为"公众号",在朋友面前装个X吧。
- 集成在你的个人应用(SpringMVC、Servlet、GUI)中,为应用提供更强的服务能力。
- 部署在你的服务器上,将监控信息、日志发送到你的微信号。
- 微信机器人,专业陪聊工具
- 控制树莓派、智能家居、智能硬件等具有开放接口的设备
- Anything you want ...
## 更新日志
- 2017-7-21:1.消息体封装为POJO类,更易操作。 2.增加处理文件消息接口。
- 2017-6-28:增加被动添加好友功能。
- 2017-6-23:增加获取群好友昵称功能,修复已知问题。
- 2017-6-16:增加微信状态维护。
- 2017-6-13:修复获取群列表为空问题,增加根据群ID获取群成员列表方法。
## API说明
*项目在不断更新中,API会有变动,请以具体代码为准*
目前在`package cn.zhouyafeng.itchat4j.api`包中有两个静态类,即`MessageTools`和`WechatTools`,目前对外暴露的方法有:
#### 1.获取好友昵称列表 WechatTools.getContactNickNameList()
此方法会返回好友昵称列表,其函数声明为:
```
public static List<String> getContactNickNameList()
```
#### 2.获取好友完整信息列表 WechatTools.getContactList()
此方法会返回好友的完整信息,如昵称、备注、地区、头像链接等,其函数声明为:
```java
public static List<JSONObject> getContactList()
```
#### 3.获取群列表 WechatTools.getGroupIdList()
群列表与好友列表不同,在登陆后群列表其实是空的,只有主动发送消息或者收到一条群消息时,才能获取到这个群的信息,群列表会记录这个群的id,其格式为`@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46`。调用此方法会返回已知的群列表。其声明函数为:
```
public static List<String> getGroupIdList()
```
#### 4.根据群ID获取群成员WechatTools.getMemberListByGroupId()
此方法根据群ID(格式为`@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46`)获取群成员列表。其函数声明为:
```java
public static JSONArray getMemberListByGroupId(String groupId)
```
#### 5.退出微信 WechatTools.logout()
退出itchat4j,不再处理消息,其函数声明为:
```
public static void logout()
```
#### 6.获取微信在线状态WechatTools.getWechatStatus()
查询微信在线状态,在线返回`true`,离线返回`false`,其函数声明为
```java
public static boolean getWechatStatus()
```
#### 7.获取群昵称列表WechatTools.getGroupNickNameList()
获取群昵称列表,函数声明为:
```java
public static List<String> getGroupNickNameList()
```
#### 8.根据用户昵称修改用户备注MessageTools.remarkNameByNickName(String nickName, String remName)
根据用户昵称修改用户备注名称,其函数声明为:
```
public static void remarkNameByNickName(String nickName, String remName)
```
#### 9. 根据好友昵称发送文本消息,MessageTools.sendMsgByNickName(String text, String nickName)
此方法根据用户昵称发送文本消息,注意,用户需在你的好友列表里,否则发送失败,如果你的好友列表里有存在昵称一样的多个用户,则只会给第一个匹配的好友发送消息。方法接受两个参数,`text`为要发送的文本消息,`nickName`为要发送消息的好友昵称,成功发送时返回true,失败返回false。其函数声明为:
```
public static boolean sendMsgByNickName(String text, String nickName)
```
#### 10.根据ID发送文本消息, MessageTools.sendMsgById(String text, String id)
根据ID发送文本消息,发送者ID可以从`msg`里通过`msg.getString("FromUserName")`获取,格式为`@@d052d34b9c9228830363013ee53deb461404f80ea353dbdd8fc9391cbf5f1c46`(群消息)或`@a257b99314d8313862cd44ab02fe0f81`(非群消息),调用此方法可向指定id发送消息。其函数声明为:
```
public static void sendMsgById(String text, String id)
```
#### 11.根据好友昵称发送图片消息,MessageTools.sendPicMsgByNickName(String nickName, String filePath)
此方法根据好友昵称发送图片消息,`filePath`为图片文件路径,如`D:/itchat4j/pic/test.jpg`,成功返回true,失败返回false。其函数声明为:
```
public static boolean sendPicMsgByNickName(String nickName, String filePath)
```
#### 12.根据ID发送图片消息,MessageTools.sendPicMsgByUserId(String userId, String filePath)
此方法根据好友ID发送图片消息,filePath`为图片文件路径,如`D:/itchat4j/pic/test.jpg`,成功返回true,失败返回false。其函数声明为:
```
public static boolean sendPicMsgByUserId(String userId, String filePath)
```
#### 13.根据好友昵称发送文件消息,MessageTools.sendFileMsgByNickName(String nickName, String filePath)
此方法根据好友昵称发送文件消息,文件可以为多种类型,如txt、PDF、小视频、语音、excel、docx等,发送时请保证文件后缀名正确。成功返回true,失败返回false。其函数声明为:
```
public static boolean sendPicFileByNickName(String nickName, String filePath)
```
#### 14.根据ID发送文件消息,MessageTools.sendFileMsgByNickName(String nickName, String filePath)
此方法根据好友昵称发送文件消息,成功返回true,失败返回false。其函数声明为:
```
public static boolean sendFileMsgByUserId(String userId, String filePath)
```
#### 15.处理好友添加请求,MessageTools.addFriend(BaseMsg msg, boolean accept)
当收到好友添加请求时,可调用此函数进行处理,msg为收到的好友添加请求消息,accept传true为接受好友请求,false为拒绝,其函数声明为:
```java
public static void addFriend(BaseMsg msg, boolean accept)
```
## TODO List 即将支持/正在开发
- 拉人进群功能
## 如何使用
*项目在不断更新中,导入后的项目结构会有变动*
itchat4j是一个Maven项目,下载源码后,可以以Maven项目的形式导入,导入后的项目结构如下图:
![itchat4j�
没有合适的资源?快使用搜索试试~ 我知道了~
java模拟微信web登录平台
共42个文件
java:38个
properties:1个
xml:1个
5星 · 超过95%的资源 需积分: 15 70 下载量 83 浏览量
2017-08-15
11:38:09
上传
评论 1
收藏 65KB ZIP 举报
温馨提示
微信机器人、java代码模拟web微信登录
资源推荐
资源详情
资源评论
收起资源包目录
yaphone-itchat4j-V1.10-68-g74be989.zip (42个子文件)
yaphone-itchat4j-74be989
src
test
java
cn
zhouyafeng
itchat4j
demo
demo2
TulingRobot.java 3KB
demo1
SimpleDemo.java 4KB
MyTest.java 835B
unuseful
UnusefulDemo.java 2KB
demo3
PicYourFriends.java 4KB
main
resources
log4j.properties 216B
java
cn
zhouyafeng
itchat4j
beans
BaseMsg.java 5KB
AppInfo.java 573B
RecommendInfo.java 2KB
service
ILoginService.java 1KB
impl
LoginServiceImpl.java 23KB
face
IMsgHandlerFace.java 2KB
utils
MsgKeywords.java 146B
SleepUtils.java 356B
MyHttpClient.java 5KB
Config.java 2KB
tools
CommonTools.java 6KB
DownloadTools.java 3KB
enums
URLEnum.java 2KB
VerifyFriendEnum.java 451B
MsgTypeEnum.java 716B
ResultEnum.java 728B
StorageLoginInfoEnum.java 1KB
parameters
UUIDParaEnum.java 536B
LoginParaEnum.java 534B
StatusNotifyParaEnum.java 589B
BaseParaEnum.java 628B
RetCodeEnum.java 480B
OsNameEnum.java 248B
MsgCodeEnum.java 2KB
ConstantConfigEnum.java 1KB
thread
CheckLoginStatusThread.java 1KB
Wechat.java 865B
controller
LoginController.java 3KB
core
MsgCenter.java 7KB
Core.java 6KB
api
MessageTools.java 14KB
AssistTools.java 1KB
WechatTools.java 6KB
README.md 29KB
pom.xml 4KB
.gitignore 72B
共 42 条
- 1
资源评论
- 沙漠中的小曼巴2018-12-12很好的列子,学习了
- 倪偲啊2018-07-23感谢分享!!非常好用!
- qq_312200072018-07-23非常非常棒!
- Java_Antelope2019-08-15没啥用,没有实质性东西,描述与东西不符
- 小白的20152018-09-07不错,谢谢分享
易大师丶无极剑圣
- 粉丝: 12
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功