用wxBot和图灵机器人API实现微信群聊机器人
1 实现方案
用 wxBot登录微信,接收、发送微信消息。
用 图灵机器人 API对消息作回复。
2 实现效果
机器人会回复来自联系人的消息,以及群里@此账号的消息。
注意要将对应的群保存到联系人。
3 运行方法
- 下载wxBot, 安装python的依赖包。
- 在图灵机器人官网注册账号,申请图灵key: 图灵key申请地址
在bot.py文件所在目录下新建conf.ini文件,内容为(key字段内容为申请到的图灵key):
[main] key=1d2678900f734aa0a23734ace8aec5b1
- 运行bot.py
4 完整代码
bot.py
#!/usr/bin/env python
# coding: utf-8from wxbot import *
import ConfigParser
import jsonclass TulingWXBot(WXBot):def __init__(self):WXBot.__init__(self)self.tuling_key = ""try:cf = ConfigParser.ConfigParser()cf.read('conf.ini')self.tuling_key = cf.get('main', 'key')except Exception:passprint 'tuling_key:', self.tuling_keydef tuling_auto_reply(self, uid, msg):if self.tuling_key:url = "http://www.tuling123.com/openapi/api"user_id = uid.replace('@', '')[:30]body = {'key': self.tuling_key, 'info': msg.encode('utf8'), 'userid': user_id}r = requests.post(url, data=body)respond = json.loads(r.text)result = ''if respond['code'] == 100000:result = respond['text'].replace('<br>', ' ')elif respond['code'] == 200000:result = respond['url']else:result = respond['text'].replace('<br>', ' ')return resultelse:return u"知道啦"def handle_msg_all(self, msg):if msg['msg_type_id'] == 4 and msg['content']['type'] == 0: # text message from contactself.send_msg_by_uid(self.tuling_auto_reply(msg['user']['id'], msg['content']['data']), msg['user']['id'])elif msg['msg_type_id'] == 3: # group messageif msg['content']['data'].find('@') >= 0: # someone @ anothermy_names = self.get_group_member_name(msg['user']['id'], self.user['UserName'])if my_names is None:my_names = {}if 'NickName' in self.user and len(self.user['NickName']) > 0:my_names['nickname2'] = self.user['NickName']if 'RemarkName' in self.user and len(self.user['RemarkName']) > 0:my_names['remark_name2'] = self.user['RemarkName']is_at_me = Falsetext_msg = ''for _ in my_names:if msg['content']['data'].find('@'+my_names[_]) >= 0:is_at_me = Truetext_msg = msg['content']['data'].replace('@'+my_names[_], '').strip()breakif is_at_me: # someone @ mesnames = self.get_group_member_name(msg['user']['id'], msg['content']['user']['id'])src_name = ''if 'display_name' in snames:src_name = snames['display_name']elif 'nickname' in snames:src_name = snames['nickname']elif 'remark_name' in snames:src_name = snames['remark_name']if src_name != '':reply = '@' + src_name + ' 'if msg['content']['type'] == 0: # text messagereply += self.tuling_auto_reply(msg['content']['user']['id'], text_msg)else:reply += u"对不起,只认字,其他杂七杂八的我都不认识,,,Ծ‸Ծ,,"self.send_msg_by_uid(reply, msg['user']['id'])def main():bot = TulingWXBot()bot.DEBUG = Truebot.conf['qr'] = 'png'bot.run()if __name__ == '__main__':main()
用wxBot和图灵机器人API实现微信群聊机器人相关推荐
- delphi 企业微信消息机器人_企业微信—群聊机器人
在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的| 一:"msgtype": "text", curl ...
- 用WeRoBot和Python编写一个不使用网页版微信且能够回复消息微信群聊机器人
要用 WeRoBot 和 Python 编写一个不使用网页版微信且能够回复消息的微信群聊机器人,您需要以下步骤: 安装 WeRoBot 和相关依赖: pipinstall werobot 创建一个 P ...
- Zabbix配置企业微信群聊机器人告警
转载来源 : Zabbix配置企业微信群聊机器人告警 : https://www.jianshu.com/p/b5b1f92b1f15 最近在给内部使用的zabbix配置告警发送,要求是使用企业微信群 ...
- 基于Java实现企业微信群聊机器人-文件上传+消息推送(保证可用)
基于Java实现企业微信群聊机器人-文件上传+消息推送 1.pom.xml(注意版本尽量保持一致) 2.文件工具类 3.企业微信请求类 4.企业微信响应类 5.发送方法 6.企业微信机器人创建和配置 ...
- 用WeRoBot和Python编写一个不使用网页版微信的微信群聊机器人
要使用 WeRoBot 和 Python 编写一个不使用网页版微信的微信群聊机器人,您需要执行以下步骤: 安装 WeRoBot 库: pipinstall WeRoBot 创建一个 Python 脚本 ...
- 如何用C语言写出一个微信群聊机器人
要用 C 语言写出一个微信群聊机器人,您需要先了解微信群聊的相关信息和 C 语言的编程知识. 首先,微信群聊是通过微信服务器进行通信的,因此您需要了解如何通过网络协议与微信服务器进行通信.微信群聊使用 ...
- nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)
程序员导航站 :艾特网-iiter.cn 开源地址: https://github.com/isnl/wechat-robot-ipad 前言 前段时间写了篇关于使用 nodejs 结合 wechat ...
- 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)
前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途.由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明 ...
- 用java做一个能赚钱的微信群聊机器人(PC协议)
前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途.由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明 ...
最新文章
- 智能合约语言Solidity Solidity API
- 2018年全球自动驾驶法律政策研究 | 附报告下载
- python【蓝桥杯vip练习题库】ALGO-118连续正整数的和(枚举优化)
- setInterval(callback(),time)
- local.properties 文件读取
- 今天我们聊聊,小程序开发的入手门槛还是比较低的
- Linux入门(兄弟连)
- 发动机噪音测试软件,噪音测试
- Geek(一个好用的强力卸载软件工具,包括注册表所有依赖项全部清理掉)
- CodeBlocks汉化安装教程
- 树莓派搭建物联网服务器
- 云更新网吧系统服务器,云更新网吧无盘
- 最简单的Hopper Disassembler玩转Mac逆向
- python中jieba分词,并输出词云(基础版)
- python_变量特性、作用域、函数
- pythonista3安装第三方库_如何在pythonista for ios中添加第三方库,如pandas?
- Best Time to Buy and Sell Stock系列分析
- 肿瘤免疫浸润分析-有哪些?
- 《数论概论(原书第4版)》一第2章 勾 股 数 组
- C语言中数据放在哪里