今天用到的是一个炒鸡简单的微信库:itchat
itchat一个开源的微信个人号接口,使用它能轻松的调用微信。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人( ͡° ͜ʖ ͡°)
使用工具:图灵123机器人,itchat ,requests,json
环境准备
- 搭建python开发环境,这个网上已经有很多教程的,也就不多赘述了
- 安装外部包,cmd下运行下面两条命令
pip install itchat
pip install requests
- 注册图灵123机器人
http://www.turingapi.com/
源码环节
好的,下面就是喜闻乐见的源码环节了(´◔౪◔)
import requests
import json
import itchat
# 连接图灵api,返回机器人回复
def get_reply_from_tuling123(msg):
apiURL = "http://openapi.tuling123.com/openapi/api/v2"
data = {
"reqType": 0,
"perception": {
"inputText": {
"text": msg
}
},
"userInfo": {
#机器人设置中的apiKey,每个机器人的唯一识别码
"apiKey": "xxx",
#机器人会以userId自称,比如:朕?,别傻了不支持中文哦
"userId": "robot123"
}
}
# "apiKey": "48979f1ef681413e82addf309e929bd7"
# "userId": "robot123"
# 将data字典转化为json形式,图灵123V2后需要提交json数据类型
data_json = json.dumps(data)
# 使用requests发送post请求,并用r接受返回的json数据
r = requests.post(apiURL,data=data_json).json()
# 打印一下微信好友的内容
print('msg:'+msg)
# 打印一下机器人的回复
print('robot_reply:'+r['results'][0]['values']['text'])
# 返回内容
return r['results'][0]['values']['text']
# print(r)#原回复:
# {'emotion': {'robotEmotion': {'a': 0, 'd': 0, 'emotionId': 20500, 'p': 0}, 'userEmotion': {'a': 0, 'd': 0, 'emotionId': 10300, 'p': 0}}, 'intent': {'actionName': '', 'code': 10004, 'intentName': ''}, 'results': [{'groupType': 1, 'resultType': 'text', 'values': {'text': '好烦呀,robot不要跟你聊天了'}}]}
# r['results'][0]['values']['text']
# 在装饰器中 添加isGroupChat=True,则只针对群聊,不添加则是默认私聊
# isFriendChat=True, isGroupChat=True, isMpChat=True
@itchat.msg_register(itchat.content.TEXT,isGroupChat=True)
def auto_reply(msg):
# 设置默认回复,如果机器人没有回复的话
default_reply = '嗯,好的'
# 搜索群聊,name参数携带群名
chatrooms = itchat.search_chatrooms(name="混子联盟")
# friends = itchat.search_friends(name="恰似一江春水向东流")
# 从chatrooms中获取该群的唯一标识符,类似于群id
real_chatrooms = chatrooms[0]['UserName']
# real_friends = friends[0]['UserName']
# 仅针对该群发送
if msg['FromUserName'] == real_chatrooms:
# print("原始msg:",msg)
# 获取自动回复,这里参数只取msg的Text的内容
reply = get_reply_from_tuling123(msg['Text'])
# 发送
itchat.send(reply, toUserName=real_chatrooms)
# 微信登录,设置参数可以短时间内重复登录不扫码登录
# itchat这里登录的是网页版
itchat.auto_login(hotReload=True)
# 启动
itchat.run()
效果展示
舒服(●´ω`●)φ
那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下;不喜欢的话可以去看下小编的其他文章,肯定有喜欢的;都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧
网友评论