itchat配合服务器的微信机器人

介绍:

给微信增加乐趣,添加自动回复机器人。目前仅支持可以登陆网页微信的旧账号,新账号貌似不支持。

环境

  1. 由于系统是centos7.2 64位系统自带Python2.7,其他系统自行安装Python
  2. Ubuntu安装Python:
sudo apt-get install python2.7
  1. 借助python的itchat和pillow,可以使用pip安装。itchat 是 A complete and graceful API for Wechat . 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。了解更多使用方法,可以阅读使用文档。
  2. 安装pip:
sudo apt-get install python-pip
  1. 安装itchat和pillow:
sudo pip install itchat pillow
  1. 有时候安装pillow会出现依赖包缺失错误,需要先安装pillow依赖库:
sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

代码:

一、python代码编写,创建py脚本文件

图灵机器人代码

import requests
import itchat
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
KEY = 'c1fb50c200404a4da70639f3b5240a00'
 
def get_response(msg):
    apiUrl = 'http://www.tuling123.com/openapi/api'
    data = {
        'key': KEY,
        'info': msg,
        'userid': 'pth-robot',
    }
    try:
        r = requests.post(apiUrl, data=data).json()
        return r.get('text')
    except:
        return
 
 
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
    defaultReply = 'I received: ' + msg['Text']
    reply = get_response(msg['Text'])
    return reply or defaultReply

itchat.auto_login(hotReload=True,  enableCmdQR=2)
itchat.run()

自定义回复

#coding:utf-8
import re
import time
import itchat
from itchat.content import *
import sys
reload(sys)
sys.setdefaultencoding('utf-8')  #由于我们返回的是中文,Unicode的编码问题,读取文件时使用的编码默认是ascii而不是utf8,所以这里我们要把默认编码设为utf8
@itchat.msg_register([TEXT])   #这里我们先选择注册文本
def reply(msg):   #首先设置防撤回,接着ruturn后的内容就是自动回复的内容,这个自动回复仅对好友生效,群里不会生效
    friend = itchat.search_friends(userName=msg['FromUserName'])
    itchat.send(r"Friend:%s -- %s    "
                r"Time:%s    "
                r" Message:%s" % (friend['NickName'], friend['RemarkName'], time.ctime(), msg['Text']),
                toUserName='filehelper')

    return '快还钱'

if __name__ == '__main__':#启动微信自动登录,二维码登录
 itchat.auto_login(hotReload=True,  enableCmdQR=2)
 itchat.run()

发短信给文件传输助手

import itchat
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
itchat.auto_login(hotReload=True,  enableCmdQR=2)
itchat.send('Hello, filehelper', toUserName='filehelper')

新的改良版

#coding:utf-8
import re
import time
import itchat
from itchat.content import *
import sys
reload(sys)
sys.setdefaultencoding('utf-8') #由于我们返回的是中文,Unicode的编码问题,读取文件时使用的编码默认是ascii而不是utf8,所以这里我们要把默认编码设为utf8
start=True
txt='【自动回复】寒假期间不上线!'
@itchat.msg_register([TEXT]) #这里我们先选择注册文本
def reply(msg): #首先设置防撤回,接着return后的内容就是自动回复的内容,这个自动回复仅对好友生效,群里不会生效
    global start #全局定义
    global txt   #全局定义
    if msg['ToUserName'] == 'filehelper':#默认开启,向文件管理助手发送on开启自动回复,发送off关闭自动回复
        if msg['Text'] == 'off':
            start=False
            itchat.send('The auto_reply is off!', 'filehelper')
        if msg['Text'] == 'on':
            start=True
            itchat.send('The auto_reply is on!', 'filehelper')
    friend = itchat.search_friends(userName=msg['FromUserName'])
    if start==True:    
        if friend['RemarkName']!='***'and friend['NickName']!='***':#设置屏蔽对象,这里填备注名
            return txt
if __name__ == '__main__':#启动微信自动登录,二维码登录
    itchat.auto_login(hotReload=True, enableCmdQR=2)
    itchat.run()### unterminated keywords ###

二、运行

2.1、首先运行【方便后台使用,所以用screen命令】

2.1、新建screen窗口

screen -S wechat

2.3、运行你刚刚保存的文件

python xxx.py

2.4、扫码登录

2.5、ctrl-a-z退出便可后台运行

3、扫码登录便可。