yaphone / itchat4j Goto Github PK
View Code? Open in Web Editor NEWitchat4j -- 用Java扩展个人微信号的能力
itchat4j -- 用Java扩展个人微信号的能力
qrPath = qrPath + File.separator + "QR.jpg";
String qrUrl = baseUrl + "/qrcode/" + core.getUuid();
try {
URL qrUrlPicture = new URL(qrUrl);
File qrFile = new File(qrPath);
FileUtils.copyURLToFile(qrUrlPicture, qrFile);
CommonTool.printQr(qrPath); // 打开登陆二维码图片
} catch (MalformedURLException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
60秒后自动断线
您好,我将itchat4j集成到我的web项目中了,我在tomcat监听器里边启动的WeChat,目前只是调起和监听,暂未试用它(没有发送任何数据),当我的web接口被调用时(与itchat4j无关),会提示内存溢出的警告,并导致tomcat重新启动,从而需要重新登录微信。
报错信息如下:
警告: The web application [BttenRobot] appears to have started a thread named [Thread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
java.net.SocketInputStream.read(SocketInputStream.java:170)
java.net.SocketInputStream.read(SocketInputStream.java:141)
sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593)
sun.security.ssl.InputRecord.read(InputRecord.java:532)
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:282)
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:165)
org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
cn.zhouyafeng.itchat4j.utils.MyHttpClient.doGet(MyHttpClient.java:115)
cn.zhouyafeng.itchat4j.service.impl.LoginServiceImpl.syncCheck(LoginServiceImpl.java:643)
cn.zhouyafeng.itchat4j.service.impl.LoginServiceImpl.access$100(LoginServiceImpl.java:53)
cn.zhouyafeng.itchat4j.service.impl.LoginServiceImpl$1.run(LoginServiceImpl.java:253)
java.lang.Thread.run(Thread.java:745)
八月 07, 2017 7:12:19 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
请问,我需要怎么做,才能解决这个问题呢?
ACCEPT(2, "接受"), ADD(3, "添加");
这两个值反了,
添加是2, 接受是3
如何集成到web项目中?是否添加返回二维码路径接口?
springmvc整合itchat4j的
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar:classes2.dex)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:146)
怎么每次启动的时候,用户的ID都会变,而且根据昵称给用户发消息日志记录发送成功,但是好友一直收不到
如题。试验了几个text message,貌似tousername不会因为@提示而改变,所以不是tousername,那应该是哪个field来判断呢?微信客户端是有这个能力判断用户被@提示的。
为了测试微信客户端是如何判断的,主要是排除微信是用简单字符串匹配的可能性,试验了一下直接贴入@机器人昵称,微信客户端不会提示,所以微信肯定是在消息里面放进了用户的id,而不是简单的字符串匹配。
我在群聊中发送了一条小心,然后机器人回复发送时为null
RT,好像是没有,退出的方法吧。。
测试多次,备注名称无法修改。。。求救
remarkNameByNickName 方法,
日志
2017-07-05 23:14:53.951 [Thread-1] INFO c.z.itchat4j.api.WechatTools - 修改备注哎呦我自己
{
"BaseResponse": {
"Ret": 1,
"ErrMsg": ""
}
}
测试多次,cookie加上也无效,抓狂中。。。
大神哥,这个问题有办法解决嘛?现在只能发完多媒体消息,就发一条文本到文件传输助手,才能停止这个情况
如题
包路径含有太多个人意义,能不能改下……
MsgList 用arraylist在处理并发和多线程的时候是不安全的吧
msg.put("Type","Map")
这段代码中,; 存放的Map是什么意思,具体什么情况会产生这个,我看后面的处理中貌似没有处理当Type = “Map” 的情况
你好,目前该项目有监听朋友圈消息吗:relaxed:
@Override
public String verifyAddFriendMsgHandle( BaseMsg msg ) {
MessageTools.addFriend(msg, true); // 同意好友请求,false为不接受好友请求
RecommendInfo recommendInfo = msg.getRecommendInfo();
String nickName = recommendInfo.getNickName();
String province = recommendInfo.getProvince();
String city = recommendInfo.getCity();
String text = "你好,来自" + province + city + "的" + nickName + ", 欢迎添加我为好友!";
//举个例子,用户添加好有后,自动给用户再发一张图片
MessageTools.sendPicMsgByNickName(recommendInfo.getNickName(),REPLY_PIC_PAHT);
return text;
}
我看Itchat有这个api,因此咨询一下。
还望作者别有压力哦。
能否实现web版微信长时间保持登录,
或者是说能够实现只需要点击确定登录,而不是说每次都需要扫描
kanjielu/jeeves 使用springboot开发的微信机器人
用安卓手机发出来的小视频,机器人下载的文件大小为空,无法播放,但是使用苹果手机发出来的小视频,可以正常下载播放。
还有一个就是群消息的话应该多加一个键值,就是除了发消息的这个群的userId之外,实际发送者的userId也应该有,
Debug:
Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
请问打算做spring boot的支持么?还有有计划发布到maven 仓库么?
这样即使程序关闭,一定时间内重新开启也可以不用重新扫码。
最简单的用法就是给 auto_login 方法传入值为真的 hotReload 。
该方法会生成一个静态文件 itchat.pkl ,用于存储登陆的状态。
2017-06-21 15:59:40,926 INFO => 获取UUID
2017-6-21 15:59:41 cn.zhouyafeng.itchat4j.utils.MyHttpClient doGet
信息: java.lang.RuntimeException: Could not generate DH keypair
2017-06-21 15:59:41,220 ERROR => Entity may not be null
java.lang.IllegalArgumentException: Entity may not be null
at org.apache.http.util.Args.notNull(Args.java:54)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:305)
at cn.zhouyafeng.itchat4j.service.impl.LoginServiceImpl.getUuid(LoginServiceImpl.java:115)
at cn.zhouyafeng.itchat4j.controller.LoginController.login(LoginController.java:35)
at cn.zhouyafeng.itchat4j.Wechat.(Wechat.java:22)
at cn.zhouyafeng.itchat4j.demo.demo1.MyTest.main(MyTest.java:17)
比如我想一口气挂5个web微信
1102被同时定义为“退出”,“客户端退出”,是手误写的还是设计如此?
https://github.com/youfou/wxpy
感觉wxpy毕竟清晰/简单,我没有任何python基础,也可以玩的很愉快,感觉可以像wxpy一样写个包,直接导入包,几行代码
当然 那个也存在一问题,偶尔自动退出,异常,不过这应该是无法避免的
iphone微信直接发视频过来下载后,下载到空的,用win版来发就不会,请问是不是httpclient问题?还是说什么问题?
UUIDParaEnum类里的:
APP_ID("appid", "wx782c26e4c19acffb")
请问这个appid什么作用?
目前都是通过文件的方式发送的sendFileMsgByUserId
加好友的功能不合适,不该在MsgCenter里直接帮人给加了,是否加好友应该放出来,其它handle的处理都是只做时间类型的添加,然后就转发了。放出来也服务程序的逻辑
RT,是不是我写的地方不对?
很幸运看到了这个项目,在深入阅读了源码过程中,发现了项目有些不合理的地方:
1:不合理的使用线程的sleep导致消息处理速度受限
2:不能自动和手机动作同步(同步手机端的更改和群列表信息刷新)
因为我是一名Android开发工程师,请问是否可以用kotlin重写并作为你的一个分支进行提交(因为kotlin的确能够省很多代码,java有点过于啰嗦了)
怎么能获取到除了通讯录之外的群?
RT,不是群主的情况下如何做到@所有人呢?
有什么解决方案不?
webWxUploadMedia 错误:syntax error, pos 1, json : ...,好像是文件上传有问题
yaphone,你好!登录时遇到如下提示:
当前登录环境异常。为了你的帐号安全,暂时不能登录web微信。你可以通过手机客户端或者windows微信登录。
请问有什么办法处理?
如果没有办法处理,再换个新账号,如何才能尽量避免这个情况出现。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/CookieStore
at cn.zhouyafeng.itchat4j.core.Core.(Core.java:62)
at cn.zhouyafeng.itchat4j.core.Core.getInstance(Core.java:33)
at cn.zhouyafeng.itchat4j.controller.LoginController.(LoginController.java:25)
at cn.zhouyafeng.itchat4j.Wechat.(Wechat.java:19)
at cn.test.wechat.Application.main(Application.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.CookieStore
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
程序在运行的时候,偶尔会出现卡死,不知道什么原因?
期待加入接受新好友请求API
谢谢!
没有太仔细看代码,请问,为啥没有使用 Object 的方式(如 WeChatMsg) getter settter方法不是更方便?
为什么直接使用了JsonObject对象,调用各种getString 之类的方法?
发送视频之前是先将视频提交到微信服务器,然而大视频需要分批上传,直接上传会导致502,有解决办法吗?分批上传最后一部分会出错
请问下,如何在群里面回复某个人的消息呢。我没有看到有相关这样的api?可否给点提示?
第一次发issue,首先感谢这么好的代码!
我看了一下,代码结构很好,但是似乎没有找到BaseMsg中的group id,在MessageTools里面也没有找到向某个group发送消息的方法。我记得itchat中是有这两个功能的,不知是否没有实现。
再次感谢!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.