關於python版微信使用經驗分享

本人最近在使用python版的微信作了一些模擬操做,使用的wxpy封裝好的框架api,聊天機器人接入的是圖靈,其餘的暫時尚未功能的接入計劃。html

在實施的過程當中遇到了不少問題,大部分是微信api過期致使了,由於自己調用的是web微信的api,我看到git上的項目已經最近的更新時間是2017年,中間不少次微信的api調整都沒更新到,好比添加好友,好比被@檢測等等。python

今天分享一下本身的使用經驗和一些本身的封裝方法:git

* 朋友列表和羣列表,由於會自動同步最近活躍的羣,因此若是新添加的羣須要從新獲取一下groups。api提供了一個search的搜索方法,使用起來稍微麻煩一些,我換了一種思路,直接下標獲取好友和羣。方法以下:web

def fslist():  
    fs= bot.friends()  
    a = 0  
    for i in fs:  
        print a  
        a +=1  
        print i  
def 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

* 發送圖片文件,主要也是在調試模式中使用。json

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

* 聊天機器人對話,本人接的圖靈的,接入方法請參照[python微信+requests+圖靈機器人制做聊天機器人](/blog/article/利用python wxpy和requests寫一個自動應答微信機器人實例.html),我這裏只寫一個封裝事後的方法,方便調用。api

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)

* 保存聊天記錄。這個原需求是想整理一下羣聊天記錄,還有那些撤回的,如今作分析用。只存本地,還沒有清洗數據到數據庫。只有文本信息。微信

[一塊兒交流](https://gitee.com/fanapi/tester/blob/okay/readme.markdown)markdown

相關文章
相關標籤/搜索