Giter VIP home page Giter VIP logo

itchat4j's People

Contributors

jray616 avatar relyn avatar yaphone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

itchat4j's Issues

java.lang.NoClassDefFoundError: org/apache/http/client/CookieStore

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

当前登录环境异常

yaphone,你好!登录时遇到如下提示:
当前登录环境异常。为了你的帐号安全,暂时不能登录web微信。你可以通过手机客户端或者windows微信登录。
请问有什么办法处理?
如果没有办法处理,再换个新账号,如何才能尽量避免这个情况出现。

msg的问题

没有太仔细看代码,请问,为啥没有使用 Object 的方式(如 WeChatMsg) getter settter方法不是更方便?
为什么直接使用了JsonObject对象,调用各种getString 之类的方法?

是否可以实现长时间登录

能否实现web版微信长时间保持登录,
或者是说能够实现只需要点击确定登录,而不是说每次都需要扫描

如何判断机器人在消息里面被@提到了?

如题。试验了几个text message,貌似tousername不会因为@提示而改变,所以不是tousername,那应该是哪个field来判断呢?微信客户端是有这个能力判断用户被@提示的。

为了测试微信客户端是如何判断的,主要是排除微信是用简单字符串匹配的可能性,试验了一下直接贴入@机器人昵称,微信客户端不会提示,所以微信肯定是在消息里面放进了用户的id,而不是简单的字符串匹配。

发送视频的问题

发送视频之前是先将视频提交到微信服务器,然而大视频需要分批上传,直接上传会导致502,有解决办法吗?分批上传最后一部分会出错

运行demo的时候报这个错误

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)

msgList

MsgList 用arraylist在处理并发和多线程的时候是不安全的吧

无法下载小视频

用安卓手机发出来的小视频,机器人下载的文件大小为空,无法播放,但是使用苹果手机发出来的小视频,可以正常下载播放。

获取群聊消息的group id,以及按group id发送群聊消息

第一次发issue,首先感谢这么好的代码!
我看了一下,代码结构很好,但是似乎没有找到BaseMsg中的group id,在MessageTools里面也没有找到向某个group发送消息的方法。我记得itchat中是有这两个功能的,不知是否没有实现。
再次感谢!

VerifyFriendEnum

ACCEPT(2, "接受"), ADD(3, "添加");

这两个值反了,
添加是2, 接受是3

hotReload功能貌似没有实现?

这样即使程序关闭,一定时间内重新开启也可以不用重新扫码。
最简单的用法就是给 auto_login 方法传入值为真的 hotReload 。
该方法会生成一个静态文件 itchat.pkl ,用于存储登陆的状态。

根据Nickname发送消息,当有两个相同nickname的微信好友的时候会出现发错信息,应该使用sendPicMsgByUserId,但是RecommendInfo对象里面并不提供userid

@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;
}

安卓平台运行报错

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)

经常莫名奇妙的掉线

Debug:

Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response

测试多次,备注名称无法修改。。。求救

测试多次,备注名称无法修改。。。求救
remarkNameByNickName 方法,
日志

2017-07-05 23:14:53.951 [Thread-1] INFO c.z.itchat4j.api.WechatTools - 修改备注哎呦我自己
{
"BaseResponse": {
"Ret": 1,
"ErrMsg": ""
}
}
测试多次,cookie加上也无效,抓狂中。。。

集成到Web后,警告内存泄露的问题

您好,我将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

请问,我需要怎么做,才能解决这个问题呢?

Kotlin重写

很幸运看到了这个项目,在深入阅读了源码过程中,发现了项目有些不合理的地方:
1:不合理的使用线程的sleep导致消息处理速度受限
2:不能自动和手机动作同步(同步手机端的更改和群列表信息刷新)

因为我是一名Android开发工程师,请问是否可以用kotlin重写并作为你的一个分支进行提交(因为kotlin的确能够省很多代码,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;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.