1. 程式人生 > >Python-微信訊息自動回覆機器人

Python-微信訊息自動回覆機器人

之前寫過一篇python-requests獲取好友列表的文章,簡直花費了好多的時間和精力,又抓包,又找引數,又分析的,簡直麻煩透頂,今天突然知道了另外一種捷徑,幾行程式碼就可以完成… #itchat

from . import content
from .core import Core
from .config import VERSION
from .log import set_logging

__version__ = VERSION

instanceList = []

def new_instance():
    newInstance = Core()
    instanceList.append(newInstance)
    return newInstance

originInstance = new_instance()

# I really want to use sys.modules[__name__] = originInstance
# but it makes auto-fill a real mess, so forgive me for my following **
# actually it toke me less than 30 seconds, god bless Uganda

# components.login
login                       = originInstance.login
get_QRuuid                  = originInstance.get_QRuuid
get_QR                      = originInstance.get_QR
check_login                 = originInstance.check_login
web_init                    = originInstance.web_init
show_mobile_login           = originInstance.show_mobile_login
start_receiving             = originInstance.start_receiving
get_msg                     = originInstance.get_msg
logout                      = originInstance.logout
# components.contact
update_chatroom             = originInstance.update_chatroom
update_friend               = originInstance.update_friend
get_contact                 = originInstance.get_contact
get_friends                 = originInstance.get_friends
get_chatrooms               = originInstance.get_chatrooms
get_mps                     = originInstance.get_mps
set_alias                   = originInstance.set_alias
set_pinned                  = originInstance.set_pinned
add_friend                  = originInstance.add_friend
get_head_img                = originInstance.get_head_img
create_chatroom             = originInstance.create_chatroom
set_chatroom_name           = originInstance.set_chatroom_name
delete_member_from_chatroom = originInstance.delete_member_from_chatroom
add_member_into_chatroom    = originInstance.add_member_into_chatroom
# components.messages
send_raw_msg                = originInstance.send_raw_msg
send_msg                    = originInstance.send_msg
upload_file                 = originInstance.upload_file
send_file                   = originInstance.send_file
send_image                  = originInstance.send_image
send_video                  = originInstance.send_video
send                        = originInstance.send
revoke                      = originInstance.revoke
# components.hotreload
dump_login_status           = originInstance.dump_login_status
load_login_status           = originInstance.load_login_status
# components.register
auto_login                  = originInstance.auto_login
configured_reply            = originInstance.configured_reply
msg_register                = originInstance.msg_register
run                         = originInstance.run
# other functions
search_friends              = originInstance.search_friends
search_chatrooms            = originInstance.search_chatrooms
search_mps                  = originInstance.search_mps
set_logging                 = set_logging

#圖靈機器人

  • 註冊個賬號 然後建立個自己的機器人(忽略我已經建立過了的) image.png image.png image.png

  • 建立成功後 會生成一個apikey

  • 幫助文件 image.png

  • 傳送3個引數 1.key : apikey 2.info :傳送的訊息 3.userid : ‘robot’

  • 具體我也不知道怎麼解釋哈哈哈 ,也是參考別人的文章

  • 上程式碼

# -*- coding: utf-8 -*-
import itchat
import requests

#微信登入
#第一次登入要掃碼,之後不需要,但是有時效
itchat.auto_login(hotReload=True)

#圖靈機器人API
apiurl = 'http://www.tuling123.com/openapi/api'

def get_info(msg):
    '''
    給圖靈機器人發訊息,獲取回覆並返回
    :param msg:
    :return:
    '''
    data = {
        'key':'bd542e4b6f654555af7bd29d78dad898',
        'info': msg,
        'userid': 'robot',
    }
    reply_msg = requests.post(apiurl, data=data).json()
    print('我的回覆:%s'%reply_msg)
    return reply_msg['text']

@itchat.msg_register(itchat.content.TEXT)
def auto_reply(msg):
    #搜尋微信好友
    realFriend = itchat.search_friends(name='老李')
    realFriendsName = realFriend[0]['UserName']
    print(realFriend)
    print(realFriendsName)
    #列印好友回覆的資訊
    print('收到訊息:%s'%msg['Text'])
    #呼叫圖靈介面
    reply = get_info(msg['Text'])
    #設定指定人物
    if msg['FromUserName'] == realFriendsName:
        itchat.send(reply, toUserName=realFriendsName)




itchat.run()

image.png

#總結: 1.長知識了啊哈哈哈哈哈 2.還有待研究