最近发现了一个有趣的项目,利用Python制作一个简单的微信机器人。思路就是微信获取到信息,然后接入图灵机器人的API,再把信息发送给对方。听起来很有意思,实践一下吧!

介绍

itchat

既然要在Python中接入微信,一定少不了和微信有关的库:itchat。 itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。有了这个库我们就可以完成一系列的操作了。itchat官方文档 使用pip install itchat安装。

图灵机器人

图灵机器人是中文语境下智能度最高的机器人大脑,已为超过23万家企业和开发者提供服务,广泛应用于机器人、智能家居、智能车载、智能客服、可穿戴设备等众多场景。图灵机器人官方网站
img

项目

微信

有了itchat,如果你想要给文件传输助手发一条信息,只需要这样:

import itchat

itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')

注意toUserName是微信ID,不是昵称或备注。 再放一段简单的代码感受一下。

import itchat

@itchat.msg_register(itchat.content.TEXT)
def textReply(msg):
    if msg['Type'] == itchat.content.TEXT:
        return  'I received: %s' %msg['Text']

itchat.auto_login()
itchat.run()

运行后会弹出一个二维码,扫描以后会使用网页版微信登录。如果这时有人和你聊天就会自动回复:“I received:(信息)”。这只是一个简单的示范,可以看一下itchat的介绍,其他方法的代码也很简单。

命令行二维码

通过以下命令可以在登陆的时候使用命令行显示二维码:

itchat.auto_login(enableCmdQR=True)

部分系统可能字幅宽度有出入,可以通过将enableCmdQR赋值为特定的倍数进行调整,如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2。

itchat.auto_login(enableCmdQR=2)

默认控制台背景色为暗色(黑色),若背景色为浅色(白色),可以将enableCmdQR赋值为负值:

itchat.auto_login(enableCmdQR=-1)

退出程序后暂存登陆状态

通过如下命令登陆,即使程序关闭,一定时间内重新开启也可以不用重新扫码。

itchat.auto_login(hotReload=True)

图灵API

登录图灵机器人官方网站http://www.tuling123.com/,点击右上角“注册”按钮进行注册并激活帐号,如下图所示:

img

每一个激活用户都可以通过图灵机器人开放平台获取多个APIKEY(当前每个用户可最多获取5个APIKEY),用户可以根据自己的需要获取不同的图灵APIKEY来应用于多种场景,获取成功后就等于拿到了开启图灵服务的钥匙。

接口地址:http://www.tuling123.com/openapi/api 请求方式为POST,请求参数格式为json。图灵机器人API介绍。 登录以后设置好自己的机器人,然后紧接着使用下边的代码。

#coding=utf-8
import itchat
from itchat.content import *
import json
import requests

@itchat.msg_register([TEXT])
def textReply(msg):
    info = msg['Text'].encode("utf-8")
    print(info)
    url = "http://www.tuling123.com/openapi/api"
    data = {
        "key":"d6cb72***********9b49ed45cb3",
        "info":info,
        "loc":"",
        "userid":""
    }
    apicon=requests.post(url,data).text
    s=json.loads(apicon,encoding="utf-8")
    print("图灵回复",s)
    itchat.send(s['text'],msg['FromUserName'])
itchat.auto_login(True)
itchat.run()

这段代码可以理解为获取到微信信息然后转到图灵机器人API,解析数据以后再回复消息。这样就可以代替你和别人聊天了,而且这个机器人还有很多丰富的功能。 目前已知的问题:在我问他关于车次,或者只要涉及到URL的时候,就收不到消息,即使在消息回复中加入了s['url']也不能正确获取信息。

2017年4月30日更新: 如果你想让这个程序一直运行,你必须有一个闲置的微信号,和一台云服务器。 登录你的云服务器,安装screen

pip install screen

安装好输入screen就进入了screen会话,这样断开ssh连接这个会话也不会停止。 再次运行命令,登录微信,这样你的机器人就一直在线啦!

最后修改:2021 年 03 月 16 日 05 : 24 PM
如果觉得我的文章对你有用,请随意赞赏