1 实现方案

wxBot登录微信,接收、发送微信消息。

图灵机器人 API对消息作回复。

2 实现效果

机器人会回复来自联系人的消息,以及群里@此账号的消息。

注意要将对应的群保存到联系人。

3 运行方法

  1. 下载wxBot, 安装python的依赖包。
  2. 在图灵机器人官网注册账号,申请图灵key: 图灵key申请地址
  3. 在bot.py文件所在目录下新建conf.ini文件,内容为(key字段内容为申请到的图灵key):

    [main]
    key=1d2678900f734aa0a23734ace8aec5b1
  4. 运行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实现微信群聊机器人相关推荐

  1. delphi 企业微信消息机器人_企业微信—群聊机器人

    在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的| 一:"msgtype": "text", curl ...

  2. 用WeRoBot和Python编写一个不使用网页版微信且能够回复消息微信群聊机器人

    要用 WeRoBot 和 Python 编写一个不使用网页版微信且能够回复消息的微信群聊机器人,您需要以下步骤: 安装 WeRoBot 和相关依赖: pipinstall werobot 创建一个 P ...

  3. Zabbix配置企业微信群聊机器人告警

    转载来源 : Zabbix配置企业微信群聊机器人告警 : https://www.jianshu.com/p/b5b1f92b1f15 最近在给内部使用的zabbix配置告警发送,要求是使用企业微信群 ...

  4. 基于Java实现企业微信群聊机器人-文件上传+消息推送(保证可用)

    基于Java实现企业微信群聊机器人-文件上传+消息推送 1.pom.xml(注意版本尽量保持一致) 2.文件工具类 3.企业微信请求类 4.企业微信响应类 5.发送方法 6.企业微信机器人创建和配置 ...

  5. 用WeRoBot和Python编写一个不使用网页版微信的微信群聊机器人

    要使用 WeRoBot 和 Python 编写一个不使用网页版微信的微信群聊机器人,您需要执行以下步骤: 安装 WeRoBot 库: pipinstall WeRoBot 创建一个 Python 脚本 ...

  6. 如何用C语言写出一个微信群聊机器人

    要用 C 语言写出一个微信群聊机器人,您需要先了解微信群聊的相关信息和 C 语言的编程知识. 首先,微信群聊是通过微信服务器进行通信的,因此您需要了解如何通过网络协议与微信服务器进行通信.微信群聊使用 ...

  7. nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)

    程序员导航站 :艾特网-iiter.cn 开源地址: https://github.com/isnl/wechat-robot-ipad 前言 前段时间写了篇关于使用 nodejs 结合 wechat ...

  8. 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)

    前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途.由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明 ...

  9. 用java做一个能赚钱的微信群聊机器人(PC协议)

    前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途.由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明 ...

最新文章

  1. 智能合约语言Solidity Solidity API
  2. 2018年全球自动驾驶法律政策研究 | 附报告下载
  3. python【蓝桥杯vip练习题库】ALGO-118连续正整数的和(枚举优化)
  4. setInterval(callback(),time)
  5. local.properties 文件读取
  6. 今天我们聊聊,小程序开发的入手门槛还是比较低的
  7. Linux入门(兄弟连)
  8. 发动机噪音测试软件,噪音测试
  9. Geek(一个好用的强力卸载软件工具,包括注册表所有依赖项全部清理掉)
  10. CodeBlocks汉化安装教程
  11. 树莓派搭建物联网服务器
  12. 云更新网吧系统服务器,云更新网吧无盘
  13. 最简单的Hopper Disassembler玩转Mac逆向
  14. python中jieba分词,并输出词云(基础版)
  15. python_变量特性、作用域、函数
  16. pythonista3安装第三方库_如何在pythonista for ios中添加第三方库,如pandas?
  17. Best Time to Buy and Sell Stock系列分析
  18. 肿瘤免疫浸润分析-有哪些?
  19. 《数论概论(原书第4版)》一第2章 勾 股 数 组
  20. C语言中数据放在哪里

热门文章

  1. cocos creater 使用.max文件/.max文件转换为.fbx文件
  2. EBAZ4205 ZYNQ HDMI扩展板 显示Linux桌面播放视频
  3. 西南交大计算机第3次作业答案,西南交大大学英语I第3次作业题答案
  4. facebook注册工具_如何打开Facebook的数据保护工具
  5. Verilog之条件语句、循环语句、块语句与生成语句
  6. 微信小程序:uni-app云开发的网盘助手
  7. 让QQ的文字漂亮起来
  8. KubeSphere 添加NFS存储
  9. 为什么很多聪明的人,却一辈子在社会最底层?
  10. 关于数据库连接IDEA报错