ITPub博客

首页 > 数据库 > 数据库开发技术 > 关于python版微信使用经验分享

关于python版微信使用经验分享

原创 数据库开发技术 作者:FunTester 时间:2019-07-30 10:19:36 0 删除 编辑

本人最近在使用python版的微信做了一些模拟操作,使用的wxpy封装好的框架api,聊天机器人接入的是图灵,其他的暂时还没有功能的接入计划。


在实施的过程中遇到了很多问题,大部分是微信api过时导致了,因为本身调用的是web微信的api,我看到git上的项目已经最近的更新时间是2017年,中间很多次微信的api调整都没更新到,比如添加好友,比如被@检测等等。


今天分享一下自己的使用经验和一些自己的封装方法:


朋友列表和群列表,因为会自动同步最近活跃的群,所以如果新添加的群需要重新获取一下groups。api提供了一个search的搜索方法,使用起来稍微麻烦一些,我换了一种思路,直接下标获取好友和群。方法如下:


def fslist():    fs= bot.friends()    a = 0    for i in fs:        print a        a +=1        print idef gslist():    gs= bot.groups()    a = 0    for i in gs:        print a        a +=1        print i

直接可以通过元素索引角标直接获取元素。


撤回消息。这个我只是对原来的recall()方法做了简单封装,这里也见识了python的简洁性。主要是在调试模式中使用。


def re(*msg):    if not msg  == ():        ms=bot.messages.search(msg)[-1]        ms.recall()    else:        ms=bot.messages[-1]        ms.recall()    print ms


发送图片文件,主要也是在调试模式中使用


def sendpic(user,name):    user.send_image('/Users/Vicky/Downloads/'+name)    print user    print "发送了图片"+name


 聊天机器人对话,本人接的图灵的,接入方法请参照[python微信+requests+图灵机器人制作聊天机器人](/blog/article/利用python wxpy和requests写一个自动应答微信机器人实例.html),我这里只写一个封装过后的方法,方便调用。现在图灵已经砍掉了免费用户使用。

def getTulingReplay(msg,friend):    userid = ""    if friend in fs:        userid = fs.index(friend)    if friend in gs:        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]]    print m    friend.send(m)

保存聊天记录。这个原需求是想整理一下群聊天记录,还有那些撤回的,现在做分析用。只存本地,尚未清洗数据到数据库。只有文本信息。


由于某些web API已经不用了,所以在使用当中会遇到一些问题,可参考web端的网页功能。


点击阅读原文,有兴趣的童鞋可以一起交流,另外求粉求关注。

原文作者:FunTester;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-07

  • 博文量
    1037
  • 访问量
    420654