最近用微信python版做了一些模拟操作,使用wxpy封装的框架api,chatbot连接图灵,其他还没有功能连接进去计划。我在实现过程中遇到了很多问题,大部分是微信api过时导致的,因为API本身调用的是web微信API。看到git上的项目最后一次更新是2017年,中间有很多微信调用。api调整没有更新,比如添加好友,比如被@检测到等等,今天分享一下我的经验和一些打包方式:好友列表和群列表,因为最近活跃的群会是自动同步,所以如果一个新添加的组需要重新获取组。api提供了搜索的方法,使用起来有点麻烦。我换了个思路,直接下标去搞朋友和群。方法如下:deffslist():fs=bot.friends()a=0foriinfs:printaa+=1printidefgslist():gs=bot.groups()a=0foriings:printaa+=1printi可以直接通过元素索引下标获取元素。撤消消息。只是对原来的recall()方法做了一个简单的封装,在这里也看到了python的简单。主要用于调试模式。defre(*msg):如果不是msg==():ms=bot.messages.search(msg)[-1]ms.recall()else:ms=bot.messages[-1]ms.recall()printms发送图像文件,主要用于调试模式。defsendpic(user,name):user.send_image('/Users/Vicky/Downloads/'+name)printuserprint"Sentapicture"+nameChatbot对话,我连接的是Turing,访问方法参考Python微信+requests+图灵机器人做一个聊天机器人,我这里只写了一个封装好的方法,方便调用。defgetTulingReplay(msg,friend):userid=""iffriendinfs:userid=fs.index(friend)iffriendings:userid=gs.index(friend)j=dict(reqType=0,perception=dict(inputText=dict(text=msg)),userInfo=dict(apiKey="***",userId=userid))r=requests.post("http://openapi.tuling123.com/openapi/api/v2",json=j)info=json.loads(r.text)["results"]c=info[0]["values"]d=c.keys()m=c[d[0]]printmfriend.send(m)保存聊天记录。原本的需求是整理一下群聊记录,还有被撤回的,现在分析。只是存储在本地,并没有将数据清洗到数据库中。只有文本信息。一起交流
