Comments (27)
@1265858594 最简单的方法是通过群名做判断,稍复杂一些的是判断群成员本人属性的AttrStatus
值(因为两种方式获得的本人UserName不变),也可以通过群封面图片做判断。(新增)通过收藏的群聊区分是否要回复。
from itchat.
我马上找时间测试这三种方法,不过还是有点不太懂,
- 通过群名怎样判断呢?有什么特殊标记吗?
- 我会比对AttrStatus的值看看有什么不同
- 封面图片不是群主自已设置的吗?有特殊标记?
明天或后天报告测试情况,谢谢。
from itchat.
- 就是最简单的将该群名与已知的自己是群主的群名做比较
- 原理来说,每个群当中个人的
AttrStatus
在重新登录后是不变的。通过判断AttrStatus
集合是否与已知的自己是群主的集合相似或者简单的将自己的AttrStatus
与已知的自己是群主的群的自己的AttrStatus
做比较即可(经@1265858594 测试不可行) - 不是自己设置的,可以配合群名在可视化界面中进行判断。(就像我们日常找群一样)
(新增)4. 通过get_chatrooms()
方法获取收藏的群聊,间接区分要回复的群
from itchat.
昨晚对于第2项的测试结果是
第一次登入时在所有的群内AttrStatus 都是 36048901
第二次登入 36048933
第三次登入 36048940
其中每次登入时间间隔10-30分钟,所有的 AttrStatus 全部都没有区分
所以无法透过AttrStatus区分哪一个群是群主
from itchat.
@1265858594 有理!是我没测试好,我修改一下方案。
我这里还有一个初步感觉可行的方案:
读取通讯录的时候只有收藏的群聊会被读取,那么通过是否被收藏判断是否要回复就可以对群聊进行区分。
可以尝试一下:)
itchat.get_chatrooms()
from itchat.
我思考一下哦,想让程序全自动判断,而不是人为的去进行设置..
from itchat.
@1265858594 我忘记了最直观的OwnerUin
判断,已经更新版本。
python -m pip install itchat --upgrade
更新以后可以尝试该程序:
import itchat
itchat.auto_login()
chatrooms = itchat.get_chatrooms()
for chatroom in chatrooms:
info = itchat.get_batch_contract(chatroom['UserName'])
if info['isAdmin']: print(info['PYQuanPin'])
from itchat.
太好了,回家马上试..试完报告结果
from itchat.
昨晚最后测试的结果,
发现我取到的 OwnerUin 不论是不是群主建的群,都是 0
不知道原因, 换了微信号,OwnerUin还是0
from itchat.
@1265858594 我给的测试程序也不可用吗?
from itchat.
@littlecodersh 我是没有用你给的程序,但是我是看你的代码改的,
后来发现 isAdmin 都是 false才去看 OwnerUin ,然后才发现都是 0
get_batch_contract 里面
j['isAdmin'] = j['OwnerUin'] == int(self.loginInfo['wxuin'])
这个部份
from itchat.
试一下这个程序,也显示全部都是0吗?
import itchat
itchat.auto_login()
chatrooms = itchat.get_chatrooms()
for chatroom in chatrooms:
info = itchat.get_batch_contract(chatroom['UserName'])
print info['OwnerUin'], info['PYQuanPin']
from itchat.
下午试..get_contract 没注意到
from itchat.
from itchat.
刚刚看
chatroomList 里面, 所有 OwnerUin 都是 0
memberList 里面,所有OwnerUin 也都是 0
from itchat.
@1265858594 这个程序打出来也全是0么?
import itchat
itchat.auto_login()
chatrooms = itchat.get_chatrooms()
for chatroom in chatrooms:
info = itchat.get_batch_contract(chatroom['UserName'])
print info['OwnerUin'], info['PYQuanPin']
from itchat.
在请教一下,关于定位唯一账号的问题。
1、
itchat.get_alias(username=msg['FromUserName'])
能否强制返回微信号而不是昵称或者备注?
2、
itchat.set_oplog(msg['FromUserName'],'测试用户ID')
设置备注名后,在用get_alias获取到的依然是昵称,不是备注名,需要重新运行机器人后才能拿到新的名字
环境是py 3.5.1
from itchat.
@pcloth 重开个issue,@一下Chyroc吧
from itchat.
设置备注名后,在用get_alias获取到的依然是昵称,不是备注名,需要重新运行机器人后才能拿到新的名字
@pcloth
这个问题应该是因为,启动机器人的时候设置了缓存联系人,所以就不更新联系人的信息了。
from itchat.
@littlecodersh 应该是,我没有去改动 OwnerUin
from itchat.
@1265858594 了解。
要不你清理一下sslkey,抓个包,带包带sslkey发我邮箱,我做个研究。
我这里几次测试都没有问题,另,网上找到的一个公开出来的返回包也没有这个问题:这里。
from itchat.
@littlecodersh 请问什么是 sslkey ? 是 skey 那串 @crypto
开头的吗?
from itchat.
@1265858594 不好意思,我没说清楚
是抓包时需要用到的sslkey,具体在教程的Wireshark配置一节有。
from itchat.
@littlecodersh 感谢指导,最后的最后,终于找出问题
我自已程序里面里是用UserName 判断 @@开头的为讨论群
所以就变成了没有 OwnerUin ...
我也忘了为什么那时我会这样写, 现在改成跟 get_batch_contract 一样
就有 OwnerUin 了
from itchat.
@1265858594 哈哈,好的
from itchat.
@littlecodersh 灰常感谢
from itchat.
补充一下,回想起当时为什麽使用 @@来判断群,
是因为使用 @@来判断群之後要用这个列表来获取实际的群列表,
这个前半段做好了,结果忘了做後半段获取实际的群列表。
from itchat.
Related Issues (20)
- Hi how i yours the App
- 现在微信网页版无法登录,还能用itchat吗 HOT 11
- iPhone手机上的8.0.43版本微信是不是改VOIP了?
- 视频号 HOT 1
- ???
- 错误
- 17年6月下旬前登陆过web网页版的微信可以使用此框架,验证微信是否支持web版本API,请点击https://wx.qq.com/ ,扫码验证即可,假如出现无法登陆,则不适用于此框架 HOT 3
- itchat.send_video 运行没有效果 HOT 2
- 如何获得微信群群人数
- 【无法登录】“为了保障你的账号安全,暂不支持使用网页版微信。你可以前往微信官网” HOT 3
- itchat.send('Hello, filehelper', toUserName='filehelper') Out[5]: <ItchatReturnValue: {'BaseResponse': {'Ret': 1, 'ErrMsg': '', 'RawMsg': ''}, 'MsgID': '', 'LocalID': ''}> HOT 2
- 【微信号】itchat可以获取微信好友列表所有人的微信号么
- 第一步扫码就出现问题 HOT 2
- 请问怎么发送群聊消息的时候@群成员,@全体,微信会有@的提醒通知 HOT 2
- revoke()方法在人数多的群聊中撤回消息太慢
- 【!!!研发必看!!!】开发做机器人,视频号、群自动管理,营销系统,客服系统,监管系统的可以 看下这个API方案
- itchat为什么有时候search_friends和search_chatrooms会找不到对应的好友和群聊,但是点一下对应的聊天框就能找到了
- 登录时报错 HOT 3
- 【!!!研发必看!!!】替代UOS WEB版,做机器人,小助手,营销系统,客服系统,监管系统的可以 看下这个API方案 HOT 5
- 能根据手机号获取微信头像昵称吗?个人签名。 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from itchat.