Python3之微信小機器人召喚術

最近業餘,入了python的坑。

結果越陷越深···

python真的很好喫啊!嘿嘿^o^


本篇將會爲大家詳細介紹一個不超過60行代碼的微信小機器人,另外特別說明下,因爲考慮到官方的支持因素,所以我在學習python之前,直接選擇的是3.X版本。

補充說明:編譯工具選用:頂級神獸-PyCharm

-第一步-

只需要引入兩個庫,itchat 和 requests

import itchat
import requests

-第二步-

這裏選擇的是廣泛在用的圖靈機器人,直接登錄圖靈機器人官網申請一個機器人,找到機器人的Key值複製到代碼裏。

# 圖靈機器人KEY
KEY = '複製機器人Key值到這裏噢'

#發送消息,並獲取圖靈機器人響應信息
def get_response(msg):
    apiUrl = 'http://www.tuling123.com/openapi/api'
    data = {
        'key': KEY,
        'info': msg,
        'userid': 'wechat-robot'
    }
    try:
        r = requests.post(apiUrl, data=data).json()
        return r.get('text')
    except:
        return

-第三步-

微信端接收消息的設置,itchat.content指定消息類型,isGroupChat和isFriendChat分別爲指定羣組和好友消息來源的開關。

#微信接收消息&迴應
@itchat.msg_register([itchat.content.TEXT, itchat.content.PICTURE], isGroupChat=True, isFriendChat=True)
def tuling_reply(msg):
    if manger_jur(msg):
        if (msg['MsgType'] == 1): #文本消息類型
            defaultReply = 'I received: ' + msg['Text']
            reply = get_response(msg['Text'])
            return reply or defaultReply
        elif (msg['MsgType'] == 47): #表情包消息類型
            NickName = msg['User']['NickName']
            reply = u"%s,過分了啊!欺負我變形金剛?" % NickName
            return reply
    else:
        print(msg['User']['NickName'] + ': ' + msg['Text'])

在使用過程中,因爲沒做過濾,這貨自動回覆了我所有羣組的消息,包括公司羣裏正兒八經的研討羣之類的···

後來··· ···

所以特別指定了羣組及好友 manger_jur(msg):

# 羣組暱稱
GROUPS = ('羣組1','羣組2')
# 好友暱稱
FRIENDS = ('好友1', '好友2')

# 指定生效羣名or好友暱稱
def manger_jur(msg):
    if msg['User']['NickName'] in GROUPS \
            or msg['User']['NickName'] in FRIENDS:

        return True
    else:
        return False

-第四步-

添加主函數,相當於Java中的main(),Java出身的我反正是這麼理解的,略略略~

if __name__ == '__main__':
    itchat.auto_login(hotReload=True)
    itchat.run()

hotReload 是微信登錄的熱加載,值設置爲True的話,程序會保存你的登錄信息,等下次重新運行主函數,就不需要重新掃碼了。

至此,大功告成!

有問題的朋友可以掃下方二維碼,關注後後臺留言,隨緣回覆。哈哈,拜~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章